{"record":{"id":"309b8ae833428fa2","repo":"langchain-ai/langgraph","slug":"unknown-serialization-type-type","errorCode":null,"errorMessage":"Unknown serialization type: {type_}","messagePattern":"Unknown serialization type: (.+?)","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"libs/checkpoint/langgraph/checkpoint/serde/jsonplus.py","lineNumber":290,"sourceCode":"\n    def loads_typed(self, data: tuple[str, bytes]) -> Any:\n        type_, data_ = data\n        if type_ == \"null\":\n            return None\n        elif type_ == \"bytes\":\n            return data_\n        elif type_ == \"bytearray\":\n            return bytearray(data_)\n        elif type_ == \"json\":\n            return json.loads(data_, object_hook=self._reviver)\n        elif type_ == \"msgpack\":\n            return ormsgpack.unpackb(\n                data_, ext_hook=self._unpack_ext_hook, option=ormsgpack.OPT_NON_STR_KEYS\n            )\n        elif self.pickle_fallback and type_ == \"pickle\":\n            return pickle.loads(data_)\n        else:\n            raise NotImplementedError(f\"Unknown serialization type: {type_}\")\n\n\n# --- msgpack ---\n\nEXT_CONSTRUCTOR_SINGLE_ARG = 0\nEXT_CONSTRUCTOR_POS_ARGS = 1\nEXT_CONSTRUCTOR_KW_ARGS = 2\nEXT_METHOD_SINGLE_ARG = 3\nEXT_PYDANTIC_V1 = 4\nEXT_PYDANTIC_V2 = 5\nEXT_NUMPY_ARRAY = 6\nEXT_DELTA_SNAPSHOT = 7\n\n\ndef _msgpack_default(obj: Any) -> str | ormsgpack.Ext:\n    if isinstance(obj, _DeltaSnapshot):\n        return ormsgpack.Ext(EXT_DELTA_SNAPSHOT, _msgpack_enc(obj.value))\n    elif hasattr(obj, \"model_dump\") and callable(obj.model_dump):  # pydantic v2","sourceCodeStart":272,"sourceCodeEnd":308,"githubUrl":"https://github.com/langchain-ai/langgraph/blob/38031739e551638e373fb553453256c23feeb41f/libs/checkpoint/langgraph/checkpoint/serde/jsonplus.py#L272-L308","documentation":"Dispatch failure in JsonPlusSerializer.loads_typed: the type tag stored alongside the serialized payload is not one of the recognized kinds ('null', 'bytes', 'bytearray', 'json', 'msgpack', or 'pickle' when pickle_fallback is enabled). This indicates the payload was written by a different/incompatible serializer version or hand-crafted, or a pickle tag was sent while pickle_fallback=False.","triggerScenarios":"Thrown at libs/checkpoint/langgraph/checkpoint/serde/jsonplus.py:290 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the same langgraph-checkpoint version wrote and reads the checkpoint","Enable pickle fallback (pickle_fallback=True) if the tag is 'pickle' and the data is trusted","Re-create or migrate the stored payload instead of decoding data from an unknown source"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"38031739e551638e373fb553453256c23feeb41f","analyzedAt":"2026-08-26T18:02:49.312Z","contentChangedAt":"2026-08-26T18:02:49.312Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}