{"record":{"id":"7ad6cc7034d03b7c","repo":"OpenBMB/ChatDev","slug":"entry-name-is-not-a-memorystoreregistration","errorCode":null,"errorMessage":"Entry '{name}' is not a MemoryStoreRegistration","messagePattern":"Entry '(.+?)' is not a MemoryStoreRegistration","errorType":"validation","errorClass":"RegistryError","httpStatus":null,"severity":"error","filePath":"runtime/node/agent/memory/registry.py","lineNumber":49,"sourceCode":"    name: str,\n    *,\n    config_cls: Type[Any],\n    factory: Callable[[\"MemoryStoreConfig\"], \"MemoryBase\"],\n    summary: str | None = None,\n) -> None:\n    if name in memory_store_registry.names():\n        raise RegistryError(f\"Memory store '{name}' already registered\")\n    entry = MemoryStoreRegistration(name=name, config_cls=config_cls, factory=factory, summary=summary)\n    memory_store_registry.register(name, target=entry)\n    register_memory_store_schema(name, config_cls=config_cls, summary=summary)\n\n\ndef get_memory_store_registration(name: str) -> MemoryStoreRegistration:\n    _ensure_builtins_loaded()\n    entry: RegistryEntry = memory_store_registry.get(name)\n    registration = entry.load()\n    if not isinstance(registration, MemoryStoreRegistration):\n        raise RegistryError(f\"Entry '{name}' is not a MemoryStoreRegistration\")\n    return registration\n\n\ndef iter_memory_store_registrations() -> Dict[str, MemoryStoreRegistration]:\n    _ensure_builtins_loaded()\n    return {name: entry.load() for name, entry in memory_store_registry.items()}\n\n\n__all__ = [\n    \"memory_store_registry\",\n    \"MemoryStoreRegistration\",\n    \"register_memory_store\",\n    \"get_memory_store_registration\",\n    \"iter_memory_store_registrations\",\n]\n","sourceCodeStart":31,"sourceCodeEnd":65,"githubUrl":"https://github.com/OpenBMB/ChatDev/blob/4fb2db0ea90375ce1059f44fe03ffbd191a7a169/runtime/node/agent/memory/registry.py#L31-L65","documentation":"The registry entry loaded for the requested memory store name is not a MemoryStoreRegistration, meaning the registry holds a foreign or corrupted object under that name. create_memory hits this when dispatching a store type.","triggerScenarios":"Something registered a raw object into memory_store_registry bypassing register_memory_store, then create_memory('name') loads and type-checks the entry.","commonSituations":"Plugins mutating the shared registry directly; version skew where MemoryStoreRegistration was redefined across package copies after a partial upgrade.","solutions":["Register only via register_memory_store","Inspect memory_store_registry.get(name).load() to see the actual object","Reinstall consistent package versions to collapse duplicate registration classes"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"from runtime.node.agent.memory.registry import iter_memory_store_registrations\nassert 'mystore' in iter_memory_store_registrations()","typeGuard":null,"tryCatchPattern":"try:\n    mem = create_memory(store_cfg)\nexcept RegistryError as e:\n    logger.error('bad memory store registration: %s', e)\n    raise","preventionTips":["Register via register_memory_store only","Avoid duplicate package installs"],"tags":["registry","memory","type-mismatch"],"backgroundTag":"registry-entry-type-mismatch","analyzedSha":"4fb2db0ea90375ce1059f44fe03ffbd191a7a169","analyzedAt":"2026-08-27T14:35:29.622Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}