run-llama/llama_index · error · ValueError
Query plan should have exactly one root node.
Error message
Query plan should have exactly one root node.
What it means
Error "Query plan should have exactly one root node." thrown in run-llama/llama_index.
Source
Thrown at llama-index-core/llama_index/core/tools/query_plan.py:231
node_counts = dict.fromkeys(nodes_dict, 0)
for node in nodes_dict.values():
for dep in node.dependencies:
node_counts[dep] += 1
root_node_ids = [
node_id for node_id, count in node_counts.items() if count == 0
]
return [nodes_dict[node_id] for node_id in root_node_ids]
def __call__(self, *args: Any, **kwargs: Any) -> ToolOutput:
"""Call."""
# the kwargs represented as a JSON object
# should be a QueryPlan object
query_plan = QueryPlan(**kwargs)
nodes_dict = {node.id: node for node in query_plan.nodes}
root_nodes = self._find_root_nodes(nodes_dict)
if len(root_nodes) > 1:
raise ValueError("Query plan should have exactly one root node.")
return self._execute_node(root_nodes[0], nodes_dict)
View on GitHub (pinned to afd0fef371)
Solutions
- Ensure the generated query plan DAG has exactly one root node.
- Fix the query plan prompt/parser so the LLM produces a single-root plan.
When it happens
Trigger: Thrown at llama-index-core/llama_index/core/tools/query_plan.py:231 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of run-llama/llama_index@afd0fef371 (2026-08-15).
Data as JSON: /api/errors/06c00c4a5d12ffc6.
Report an issue: GitHub.