invoke-ai/InvokeAI · error · UnsupportedWorkflowNodeError

call_saved_workflow does not yet support connected batch chi

Error message

call_saved_workflow does not yet support connected batch child workflow inputs on node '{node_id}'

What it means

When a batch field's incoming edge traces back (through connector nodes) to something other than a direct generator invocation node, _resolve_batch_items_from_inputs cannot resolve a generator source and raises this error. Connected batch child workflow inputs that aren't generator-backed are not supported.

Source

Thrown at invokeai/app/services/session_processor/workflow_call_batch.py:542

    incoming_source_ids = [edge.get("source") for edge in incoming_edges if isinstance(edge.get("source"), str)]
    if len(incoming_source_ids) != 1:
        raise UnsupportedWorkflowNodeError(
            f"call_saved_workflow does not yet support multiple connected batch inputs on node '{node_id}'"
        )
    source_id = incoming_source_ids[0]
    source_node = workflow_nodes.get(source_id)
    if _is_invocation_node(source_node) and source_node["data"].get("type", "").endswith("_generator"):
        return source_id
    if _is_connector_node(source_node):
        resolved_source = _resolve_connector_source(source_id, workflow_nodes, workflow_edges)
        if resolved_source is not None:
            resolved_source_id, _resolved_source_handle = resolved_source
            resolved_source_node = workflow_nodes.get(resolved_source_id)
            if _is_invocation_node(resolved_source_node) and resolved_source_node["data"].get("type", "").endswith(
                "_generator"
            ):
                return resolved_source_id
    raise UnsupportedWorkflowNodeError(
        f"call_saved_workflow does not yet support connected batch child workflow inputs on node '{node_id}'"
    )


def build_batch_child_workflow_session_results(
    *,
    parent_session: GraphExecutionState,
    workflow: Mapping[str, Any],
    workflow_inputs: Mapping[str, Any],
    call_frame: WorkflowCallFrame,
    maximum_children: int,
    services: Any = None,
    user_id: str | None = None,
    resolve_generator_items: bool = True,
) -> list[GraphExecutionState]:
    mutable_workflow = copy.deepcopy(workflow)
    apply_workflow_inputs_to_workflow(mutable_workflow, workflow_inputs)

View on GitHub (pinned to 0b6a024f2f)

Solutions

  1. Connect the batch field directly to a *_generator invocation node output
  2. Remove intermediate connector/non-generator nodes from the batch input path
  3. Restructure the workflow so batch items originate from a supported generator node

Example fix

// before: image node output wired into batch input
{"target": "batch-1", "targetHandle": "images", "source": "img-7", "type": "default"}
// after: wire from the generator instead
{"target": "batch-1", "targetHandle": "images", "source": "image_generator-1", "type": "default"}
Defensive patterns

Strategy: validation

Validate before calling

for e in workflow.get("edges", []):
    if e.get("target") in batch_node_ids and e.get("type") == "default":
        src = workflow_nodes_by_id.get(e.get("source"))
        if not (src and src.get("data", {}).get("type", "").endswith("_generator")):
            raise ValueError(f"batch input on {e['target']} must come directly from a *_generator node")

Type guard

def is_generator_source(node: object) -> TypeGuard[dict]:
    return (isinstance(node, Mapping) and node.get("type") == "invocation"
            and str(node.get("data", {}).get("type", "")).endswith("_generator"))

Try / catch

try:
    build_batch_child_workflow_session_results(...)
except UnsupportedWorkflowNodeError as e:
    if "connected batch child workflow inputs" in str(e):
        rewire_batch_input_to_generator(extract_node_id(str(e)))

Prevention

When it happens

Trigger: A batch node's field is fed via a connector node or by a non-generator invocation node, and the resolved source chain never terminates at a *_generator node.

Common situations: Routing batch items through intermediate nodes (collectors, passthroughs) before the batch node; connecting an image node's output to a batch input; complex sub-workflow nesting.

Related errors


AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29). Data as JSON: /api/errors/cc4951abe1b9eec4. Report an issue: GitHub.