OpenBMB/ChatDev · error · ValueError
Node {node.id} has no human configuration
Error message
Node {node.id} has no human configuration What it means
The node is a human node but node.as_config(HumanConfig) returned None/empty — the HumanConfig payload is missing from the node, so there is no task description or settings.
Source
Thrown at runtime/node/executor/human_executor.py:33
"""Executor used for human interaction nodes."""
def execute(self, node: Node, inputs: List[Message]) -> List[Message]:
"""Execute a human node.
Args:
node: Human node definition
inputs: Input messages
Returns:
Result supplied by the human reviewer
"""
self._ensure_not_cancelled()
if node.node_type != "human":
raise ValueError(f"Node {node.id} is not a human node")
human_config = node.as_config(HumanConfig)
if not human_config:
raise ValueError(f"Node {node.id} has no human configuration")
human_task_description = human_config.description
# Use prompt-style preview so humans see the same flattened text format
# instead of raw message JSON.
input_data = self._inputs_to_text(inputs)
prompt_service = self.context.get_human_prompt_service()
if prompt_service is None:
raise RuntimeError("HumanPromptService is not configured; cannot execute human node")
prompt_result = prompt_service.request(
node.id,
human_task_description or "",
inputs=input_data,
metadata={"node_type": "human"},
)
return [self._build_message(View on GitHub (pinned to 4fb2db0ea9)
Solutions
- Add a valid HumanConfig (at minimum a description) to the node's config payload
- Validate workflow definitions against the current schema before execution
- After runtime upgrades, migrate node configs to the current field names
Example fix
# before
node = Node(id='n1', node_type='human') # no config
# after
node = Node(id='n1', node_type='human', config={'description': 'Review the draft'}) Defensive patterns
Strategy: validation
Validate before calling
cfg = node.as_config(HumanConfig)
if not cfg:
raise ValueError('human node missing config') Type guard
def has_human_config(node) -> bool:
return bool(node.as_config(HumanConfig)) Prevention
- Schema-validate workflows before execution
- Include configs in workflow builder templates
When it happens
Trigger: A 'human' node whose config dict is absent, empty, or failed to deserialize into HumanConfig.
Common situations: Workflow builder omitted config when creating the node; renamed/moved HumanConfig fields between versions breaking deserialization; hand-written workflow YAML missing the config block.
Related errors
- Node {node.id} is not a human node
- HumanPromptService is not configured; cannot execute human n
- Node {node.id} missing literal configuration
- Node {node.id} missing loop_counter configuration
- Node {node.id} missing loop_timer configuration
AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27).
Data as JSON: /api/errors/5ca55c1f8e7aa6e9.
Report an issue: GitHub.