OpenBMB/ChatDev · error · RegistryError

Edge processor type '{processor_config.type}' does not provi

Error message

Edge processor type '{processor_config.type}' does not provide an implementation

What it means

The edge processor type is registered but its registration lacks a processor_cls, so build_edge_processor cannot construct an EdgePayloadProcessor for an edge's processor_config.

Source

Thrown at runtime/edge/processors/registry.py:72

    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)


__all__ = [
    "register_edge_processor",
    "get_edge_processor_registration",
    "iter_edge_processor_registrations",
    "build_edge_processor",
]

View on GitHub (pinned to 4fb2db0ea9)

Solutions

  1. Provide a concrete processor_cls implementing EdgePayloadProcessor when registering
  2. Remove the edge processor entry from your config or switch to a fully implemented builtin type

Example fix

# before
register_edge_processor('myproc', config_cls=C, processor_cls=None)

# after
class MyProc(EdgePayloadProcessor[MyProcConfig]):
    ...
register_edge_processor('myproc', config_cls=C, processor_cls=MyProc)
Defensive patterns

Strategy: validation

Validate before calling

from runtime.edge.processors.registry import get_edge_processor_registration
reg = get_edge_processor_registration(cfg.type)
if reg.processor_cls is None:
    raise ConfigError(f'{cfg.type} has no processor implementation')

Prevention

When it happens

Trigger: An edge processor config references type X whose registration was made with processor_cls=None/omitted; instantiating the graph/edge triggers build_edge_processor(processor_config, context).

Common situations: Config-only or placeholder processor registrations; copied registration calls missing the processor_cls argument; referencing an abstract processor type in edge configs.

Related errors


AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27). Data as JSON: /api/errors/2bf1145c95b55524. Report an issue: GitHub.