OpenBMB/ChatDev · error · ConfigError
unsupported memory store type '{store_type}'
Error message
unsupported memory store type '{store_type}' What it means
Thrown by MemoryStoreConfig.from_dict when the memory store's 'type' string has no registered schema. The config loader looks up store types via get_memory_store_schema(); an unknown or misspelled type raises SchemaLookupError, which is wrapped into this ConfigError with the JSON path pointing at 'type'.
Source
Thrown at entity/configs/node/memory.py:365
),
}
@dataclass
class MemoryStoreConfig(BaseConfig):
name: str
type: str
config: BaseConfig | None = None
@classmethod
def from_dict(cls, data: Mapping[str, Any], *, path: str) -> "MemoryStoreConfig":
mapping = require_mapping(data, path)
name = require_str(mapping, "name", path)
store_type = require_str(mapping, "type", path)
try:
schema = get_memory_store_schema(store_type)
except SchemaLookupError as exc:
raise ConfigError(f"unsupported memory store type '{store_type}'", extend_path(path, "type")) from exc
if "config" not in mapping or mapping["config"] is None:
raise ConfigError("memory store requires config block", extend_path(path, "config"))
config_obj = schema.config_cls.from_dict(mapping["config"], path=extend_path(path, "config"))
return cls(name=name, type=store_type, config=config_obj, path=path)
def require_payload(self) -> BaseConfig:
if not self.config:
raise ConfigError("memory store payload missing", extend_path(self.path, "config"))
return self.config
FIELD_SPECS = {
"name": ConfigFieldSpec(
name="name",
display_name="Store Name",
type_hint="str",
required=True,View on GitHub (pinned to 4fb2db0ea9)
Solutions
- Check the exact spelling and casing of the 'type' field in your memory store config block against the registered store types
- Ensure any module that registers the memory store schema (calls the registration API for that store type) is imported before parsing config
- Print available store types by inspecting the memory store registry to see what names are accepted
- Upgrade/downgrade aligning config schema with the library version that introduced/renamed the store type
Example fix
# before
memory:
store:
name: my_store
type: vectordb # not registered
# after
memory:
store:
name: my_store
type: redis # registered store type Defensive patterns
Strategy: validation
Validate before calling
from entity.configs.node.memory import get_memory_store_schema
try:
get_memory_store_schema(cfg['store']['type'])
except SchemaLookupError:
# invalid type; fix before parsing
... Try / catch
try:
store_cfg = MemoryStoreConfig.from_dict(data, path='store')
except ConfigError as e:
if 'unsupported memory store type' in str(e):
# surface allowed types / fallback to default store
... Prevention
- Keep a canonical list of supported store types in your config docs
- Import store plugin modules before parsing configs
- Add a CI schema validation step for config files
When it happens
Trigger: Calling MemoryStoreConfig.from_dict (directly or via a node/graph config parse) with mapping['type'] set to a value that is not a registered memory store type, e.g. 'vectordb' instead of a supported store like 'redis' or 'in-memory'.
Common situations: Typos in YAML/JSON memory store configs, copy-pasting configs from an older/newer version where store type names changed, or referencing a store whose plugin/module registering the schema was never imported.
Related errors
- unsupported node type '{node_type}'
- model.name must be a non-empty string
- model.input_mode must be 'prompt' or 'messages'
- tooling must be a list
- memories must be a list
AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27).
Data as JSON: /api/errors/fbd2f34e8c2a1544.
Report an issue: GitHub.