{"record":{"id":"024191f766cd44a3","repo":"vllm-project/vllm","slug":"unsupported-object-type-type-name-in-metadata","errorCode":null,"errorMessage":"Unsupported object type '{type_name}' in metadata","messagePattern":"Unsupported object type '(.+?)' in metadata","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"vllm/distributed/device_communicators/shm_object_storage.py","lineNumber":400,"sourceCode":"            obj = []\n            start_idx = 0\n            for length in len_arr:\n                item_bytes = serialized_data[start_idx : start_idx + length]\n                obj.append(item_bytes)\n                start_idx += length\n            obj = self.tensor_decoder.decode(obj)\n        elif type_name == self._mm_kwargs_item_cls.__name__:\n            obj = []\n            start_idx = 0\n            for length in len_arr:\n                item_bytes = serialized_data[start_idx : start_idx + length]\n                obj.append(item_bytes)\n                start_idx += length\n            obj = self.mm_decoder.decode(obj)\n        elif type_name == bytes.__name__:\n            obj = pickle.loads(serialized_data)\n        else:\n            raise ValueError(f\"Unsupported object type '{type_name}' in metadata\")\n\n        return obj\n\n\n@dataclass\nclass ShmObjectStorageHandle:\n    max_object_size: int\n    n_readers: int\n    ring_buffer_handle: tuple[int, str]\n    serde_class: type[ObjectSerde]\n    reader_lock: LockType | None\n\n\nclass SingleWriterShmObjectStorage:\n    \"\"\"\n    A single-writer, multiple-reader object storage system built on top of a\n    shared memory ring buffer. Provides key-value storage with automatic memory\n    management and cross-process serialization support.","sourceCodeStart":382,"sourceCodeEnd":418,"githubUrl":"https://github.com/vllm-project/vllm/blob/c794754062d49a8fdb63ab3c5215b488b865030c/vllm/distributed/device_communicators/shm_object_storage.py#L382-L418","documentation":"ShmObjectStorage.deserialize() dispatches on a type-name string stored in the object metadata. It knows how to rebuild tensors, multimodal-kwargs items, and bytes (pickles); any other type_name string reaching the else-branch raises ValueError. This indicates the shared memory holds data serialized by a different/older serde implementation than the one reading it.","triggerScenarios":"Reading shared memory written by a mismatched vLLM version whose ObjectSerde encodes different type tags; corrupt or zeroed metadata after a crash making the type-name field garbage; or extending the serde with a new type without adding a decoder branch.","commonSituations":"Upgrading one process (e.g. worker) but not another in a multi-process deployment; stale /dev/shm files left over from a crashed previous run being re-attached; custom subclasses of ObjectSerde that add new serialized types.","solutions":["Make sure all processes sharing the storage run the exact same vLLM build (same serde class)","Remove stale shared-memory segments from the crashed run (unlink the shm file / restart the engine cleanly) before re-attaching","If you added a new serializable type, add a matching decode branch in deserialize() and register it in serialize()"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# verify build identity before attaching shared memory\nimport vllm\nassert storage.serde.__class__.__name__ == expected_serde_name, (\n    \"serde mismatch: shm written by a different vLLm build\"\n)","typeGuard":null,"tryCatchPattern":"try:\n    obj = storage.get(address, mid)\nexcept ValueError as e:\n    if \"Unsupported object type\" in str(e):\n        raise RuntimeError(\"stale or version-mismatched shm; recreate the segment\") from e\n    raise","preventionTips":["Run all processes sharing the storage on the identical vLLm version","Clean up stale /dev/shm segments after crashes before re-attaching","Cover new serde types with round-trip serialize/deserialize tests"],"tags":["serialization","version-mismatch","shared-memory"],"backgroundTag":null,"analyzedSha":"c794754062d49a8fdb63ab3c5215b488b865030c","analyzedAt":"2026-08-14T21:17:39.825Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}