{"record":{"id":"2bf1145c95b55524","repo":"OpenBMB/ChatDev","slug":"edge-processor-type-processor-config-type-does","errorCode":null,"errorMessage":"Edge processor type '{processor_config.type}' does not provide an implementation","messagePattern":"Edge processor type '(.+?)' does not provide an implementation","errorType":"validation","errorClass":"RegistryError","httpStatus":null,"severity":"error","filePath":"runtime/edge/processors/registry.py","lineNumber":72,"sourceCode":"    registration = entry.load()\n    if not isinstance(registration, EdgeProcessorRegistration):\n        raise RegistryError(f\"Entry '{name}' is not an EdgeProcessorRegistration\")\n    return registration\n\n\ndef iter_edge_processor_registrations() -> Dict[str, EdgeProcessorRegistration]:\n    _ensure_builtins_loaded()\n    return {name: entry.load() for name, entry in edge_processor_registry.items()}\n\n\ndef build_edge_processor(\n    processor_config: \"EdgeProcessorConfig\",\n    context: ProcessorFactoryContext,\n) -> \"EdgePayloadProcessor[Any]\":\n    registration = get_edge_processor_registration(processor_config.type)\n    processor_cls = registration.processor_cls\n    if not processor_cls:\n        raise RegistryError(f\"Edge processor type '{processor_config.type}' does not provide an implementation\")\n    return processor_cls(processor_config.config, context)\n\n\n__all__ = [\n    \"register_edge_processor\",\n    \"get_edge_processor_registration\",\n    \"iter_edge_processor_registrations\",\n    \"build_edge_processor\",\n]\n","sourceCodeStart":54,"sourceCodeEnd":82,"githubUrl":"https://github.com/OpenBMB/ChatDev/blob/4fb2db0ea90375ce1059f44fe03ffbd191a7a169/runtime/edge/processors/registry.py#L54-L82","documentation":"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.","triggerScenarios":"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).","commonSituations":"Config-only or placeholder processor registrations; copied registration calls missing the processor_cls argument; referencing an abstract processor type in edge configs.","solutions":["Provide a concrete processor_cls implementing EdgePayloadProcessor when registering","Remove the edge processor entry from your config or switch to a fully implemented builtin type"],"exampleFix":"# before\nregister_edge_processor('myproc', config_cls=C, processor_cls=None)\n\n# after\nclass MyProc(EdgePayloadProcessor[MyProcConfig]):\n    ...\nregister_edge_processor('myproc', config_cls=C, processor_cls=MyProc)","handlingStrategy":"validation","validationCode":"from runtime.edge.processors.registry import get_edge_processor_registration\nreg = get_edge_processor_registration(cfg.type)\nif reg.processor_cls is None:\n    raise ConfigError(f'{cfg.type} has no processor implementation')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate edge processor configs before graph run","Avoid config-only registrations"],"tags":["registry","edge-processors","missing-implementation"],"backgroundTag":"missing-implementation-class","analyzedSha":"4fb2db0ea90375ce1059f44fe03ffbd191a7a169","analyzedAt":"2026-08-27T14:35:29.622Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}