OpenBMB/ChatDev · error · ValueError
Node {node.id} is not a passthrough node
Error message
Node {node.id} is not a passthrough node What it means
PassthroughNodeExecutor.execute asserts node.node_type == 'passthrough'; any other type reaching it is a routing or node-construction bug.
Source
Thrown at runtime/node/executor/passthrough_executor.py:16
"""Passthrough node executor."""
from typing import List
from entity.configs import Node
from entity.configs.node.passthrough import PassthroughConfig
from entity.messages import Message, MessageRole
from runtime.node.executor.base import NodeExecutor
class PassthroughNodeExecutor(NodeExecutor):
"""Forward input messages without modifications."""
def execute(self, node: Node, inputs: List[Message]) -> List[Message]:
if node.node_type != "passthrough":
raise ValueError(f"Node {node.id} is not a passthrough node")
config = node.as_config(PassthroughConfig)
if config is None:
raise ValueError(f"Node {node.id} missing passthrough configuration")
if not inputs:
warning_msg = f"Passthrough node '{node.id}' triggered without inputs"
self.log_manager.warning(warning_msg, node_id=node.id, details={"input_count": 0})
return [Message(content="", role=MessageRole.USER)]
if config.only_last_message:
if len(inputs) > 1:
self.log_manager.debug(
f"Passthrough node '{node.id}' received {len(inputs)} inputs; forwarding the latest entry",
node_id=node.id,
details={"input_count": len(inputs)},
)
return [inputs[-1].clone()]View on GitHub (pinned to 4fb2db0ea9)
Solutions
- Set node_type to 'passthrough' for nodes forwarded to this executor
- Route through create_executor rather than manual construction
- Repair malformed workflow definitions
Example fix
# before node.node_type = 'relay' # after node.node_type = 'passthrough'
Defensive patterns
Strategy: type-guard
Validate before calling
assert node.node_type == 'passthrough'
Type guard
def is_passthrough_node(node) -> bool:
return node.node_type == 'passthrough' Prevention
- Use the executor factory for routing
When it happens
Trigger: Invoking PassthroughNodeExecutor with a node whose type isn't 'passthrough'.
Common situations: Direct executor instantiation in tests; corrupted workflow files; refactored routing tables.
Related errors
- Node {node.id} is not a human node
- Node {node.id} is not a literal node
- No node types registered; cannot validate workflow
- Unsupported node type '{ntype}' for node '{nid}'. Only {allo
- Design file not found: {config_path}
AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27).
Data as JSON: /api/errors/c470266cd0d10189.
Report an issue: GitHub.