invoke-ai/InvokeAI · error · UnsupportedWorkflowNodeError
call_saved_workflow generator-backed batch child workflow is
Error message
call_saved_workflow generator-backed batch child workflow is missing generator node '{generator_source_id}' What it means
When a batch field resolves to a generator source id, build_batch_child_workflow_session_results looks the generator node up in workflow_nodes. If the id has no matching node (dangling edge), it raises this error naming the missing generator node id.
Source
Thrown at invokeai/app/services/session_processor/workflow_call_batch.py:584
for node in workflow_nodes.values():
if not _is_invocation_node(node):
continue
node_data = node["data"]
node_id = node_data.get("id")
node_type = node_data.get("type")
if not isinstance(node_id, str) or not isinstance(node_type, str):
continue
if node_type.endswith("_generator"):
continue
if node_type not in SUPPORTED_BATCH_TYPES:
continue
field_name = BATCH_FIELD_NAMES[node_type]
generator_source_id = _resolve_batch_items_from_inputs(node_id, field_name, workflow_edges, workflow_nodes)
if generator_source_id is not None:
generator_node = workflow_nodes.get(generator_source_id)
if generator_node is None:
raise UnsupportedWorkflowNodeError(
f"call_saved_workflow generator-backed batch child workflow is missing generator node '{generator_source_id}'"
)
generator_node_type = generator_node["data"].get("type") if _is_invocation_node(generator_node) else None
if generator_node_type == "image_generator" and services is None and resolve_generator_items:
raise UnsupportedWorkflowNodeError(
"call_saved_workflow image-generator-backed batch child workflows require runtime services"
)
batch_items = (
_resolve_generator_items(generator_node, services, user_id, maximum_children)
if resolve_generator_items
else _get_generator_placeholder_items(generator_node)
)
used_generator_node_ids.add(generator_source_id)
if not batch_items:
raise UnsupportedWorkflowNodeError(
f"call_saved_workflow generator-backed batch child workflow node '{generator_source_id}' produced no batch items"
)
else:View on GitHub (pinned to 0b6a024f2f)
Solutions
- Remove the stale edge pointing at the missing generator node, or reconnect the batch input to an existing generator
- Re-add the deleted generator node with the original id
- Re-export the workflow from the InvokeAI UI to repair nodes/edges consistency
Example fix
// before: edge references deleted node
{"nodes": ["batch-1", ...], "edges": [{"target": "batch-1", "source": "gen-gone", "type": "default"}]}
// after: remove edge or restore node gen-gone
{"nodes": ["batch-1", "gen-1", ...], "edges": [{"target": "batch-1", "source": "gen-1", "type": "default"}]} Defensive patterns
Strategy: validation
Validate before calling
node_ids = {n["id"] for n in workflow.get("nodes", []) if isinstance(n, dict)}
for e in workflow.get("edges", []):
if e.get("source") not in node_ids or e.get("target") not in node_ids:
raise ValueError(f"dangling edge: {e.get('source')} -> {e.get('target')}") Type guard
def edges_resolve_to_nodes(workflow: dict) -> bool:
ids = {n["id"] for n in workflow.get("nodes", []) if isinstance(n, dict) and "id" in n}
return all(e.get("source") in ids and e.get("target") in ids for e in workflow.get("edges", [])) Try / catch
try:
build_batch_child_workflow_session_results(...)
except UnsupportedWorkflowNodeError as e:
if "missing generator node" in str(e):
drop_or_reconnect_dangling_edges(extract_missing_id(str(e))) Prevention
- Delete edges together with their source nodes when editing workflows
- Run an edge/node referential-integrity check before queueing
- Never merge workflow JSON files by hand; use the editor export
When it happens
Trigger: A workflow's edges reference a source node id that no longer exists in nodes (node deleted, JSON edited, or partially imported workflow), for a generator-backed batch child workflow.
Common situations: Deleting a generator node in the editor while its edge remained; merging workflow JSON files by hand; API clients submitting workflows with inconsistent nodes/edges arrays.
Related errors
- call_saved_workflow child workflow is malformed
- call_saved_workflow does not yet support child workflows tha
- Unsupported batch group id '{batch_group_id}' in called work
- call_saved_workflow batch child workflow node inputs are mal
- call_saved_workflow batch child workflow node is missing req
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/838f5d2ed9b70fb1.
Report an issue: GitHub.