OpenBMB/ChatDev · error · RegistryError
Entry '{name}' is not an EdgeProcessorRegistration
Error message
Entry '{name}' is not an EdgeProcessorRegistration What it means
The registry entry loaded for the requested edge processor type is not an EdgeProcessorRegistration, indicating a corrupted or foreign entry in the processor registry.
Source
Thrown at runtime/edge/processors/registry.py:56
) -> None:
if name in edge_processor_registry.names():
raise RegistryError(f"Edge processor type '{name}' already registered")
entry = EdgeProcessorRegistration(
name=name,
config_cls=config_cls,
processor_cls=processor_cls,
summary=summary,
)
edge_processor_registry.register(name, target=entry)
register_edge_processor_schema(name, config_cls=config_cls, summary=summary)
def get_edge_processor_registration(name: str) -> EdgeProcessorRegistration:
_ensure_builtins_loaded()
entry: RegistryEntry = edge_processor_registry.get(name)
registration = entry.load()
if not isinstance(registration, EdgeProcessorRegistration):
raise RegistryError(f"Entry '{name}' is not an EdgeProcessorRegistration")
return registration
def iter_edge_processor_registrations() -> Dict[str, EdgeProcessorRegistration]:
_ensure_builtins_loaded()
return {name: entry.load() for name, entry in edge_processor_registry.items()}
def build_edge_processor(
processor_config: "EdgeProcessorConfig",
context: ProcessorFactoryContext,
) -> "EdgePayloadProcessor[Any]":
registration = get_edge_processor_registration(processor_config.type)
processor_cls = registration.processor_cls
if not processor_cls:
raise RegistryError(f"Edge processor type '{processor_config.type}' does not provide an implementation")
return processor_cls(processor_config.config, context)
View on GitHub (pinned to 4fb2db0ea9)
Solutions
- Register only through register_edge_processor
- Inspect edge_processor_registry.get(name).load() to see the actual object type
- Reinstall/align package versions so there is a single EdgeProcessorRegistration class
Defensive patterns
Strategy: try-catch
Validate before calling
from runtime.edge.processors.registry import iter_edge_processor_registrations assert 'myproc' in iter_edge_processor_registrations()
Try / catch
try:
proc = build_edge_processor(cfg, ctx)
except RegistryError as e:
logger.error('bad processor registration: %s', e)
raise Prevention
- Use official register functions only
- Pin consistent package versions
When it happens
Trigger: Something wrote a non-EdgeProcessorRegistration object into edge_processor_registry under that name (bypassing register_edge_processor), and build_edge_processor/get_edge_processor_registration then loads it.
Common situations: Direct registry mutation by plugins, or version skew after upgrading the runtime where EdgeProcessorRegistration was redefined and isinstance checks fail across copies of the class.
Related errors
- Entry '{name}' is not an EdgeConditionRegistration
- Entry '{name}' is not a BaseConfig subclass
- Edge condition type '{name}' already registered
- Edge processor type '{name}' already registered
- Memory store '{name}' already registered
AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27).
Data as JSON: /api/errors/1d3997d47e5b770e.
Report an issue: GitHub.