code: def test_errors():
      msg = {
          "data": {"foo": to_serialize(inc)},
          "a": 1,
          "b": 2,
          "c": 3,
          "d": 4,
          "e": 5,
      }
  
      header, frames = serialize(msg, serializers=["msgpack", "pickle"])
      assert header["serializer"] == "pickle"
  
      header, frames = serialize(msg, serializers=["msgpack"])
      assert header["serializer"] == "error"
  
      with pytest.raises(TypeError):
          serialize(msg, serializers=["msgpack"], on_error="raise")
  
imports: from __future__ import annotations
  import copy
  import pickle
  from array import array
  import msgpack
  import pytest
  from tlz import identity
  import dask
  from distributed import Nanny, wait
  from distributed.comm.utils import from_frames, to_frames
  from distributed.protocol import Serialize, Serialized, dask_serialize, deserialize, deserialize_bytes, dumps, loads, nested_deserialize, register_serialization, register_serialization_family, serialize, serialize_bytelist, serialize_bytes, to_serialize
  from distributed.protocol.serialize import _is_msgpack_serializable, check_dask_serializable
  from distributed.utils import ensure_memoryview, nbytes
  from distributed.utils_test import NO_AMM, gen_test, inc
  from dask import delayed
  from distributed.utils_test import gen_cluster
label_desc: Use image node_id 22 for calling a global function with example usage: test_errors() without return types