invoke-ai/InvokeAI · error · UnsupportedWorkflowNodeError

call_saved_workflow does not yet support multiple connected

Error message

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

What it means

_resolve_batch_items_from_inputs finds all default edges feeding a batch node's field. If more than one distinct source node feeds the same batch input, the resolver cannot pick a single generator and raises this error, since multiple connected batch inputs aren't supported yet.

Source

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

    return batch_items


def _resolve_batch_items_from_inputs(
    node_id: str,
    field_name: str,
    workflow_edges: Sequence[Mapping[str, Any]],
    workflow_nodes: Mapping[str, Mapping[str, Any]],
) -> list[Any] | None:
    incoming_edges = [
        edge
        for edge in workflow_edges
        if edge.get("target") == node_id and edge.get("targetHandle") == field_name and edge.get("type") == "default"
    ]
    if not incoming_edges:
        return None
    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}'"
    )

View on GitHub (pinned to 0b6a024f2f)

Solutions

  1. Remove one of the incoming edges so exactly one source feeds the batch field
  2. Merge the sources into a single generator/collection node upstream
  3. Move each source to a separate batch node if independent batching is intended

Example fix

// before
{"target": "batch-1", "targetHandle": "images", "source": "gen-1", "type": "default"},
{"target": "batch-1", "targetHandle": "images", "source": "gen-2", "type": "default"}
// after: keep only one edge
{"target": "batch-1", "targetHandle": "images", "source": "gen-1", "type": "default"}
Defensive patterns

Strategy: validation

Validate before calling

from collections import defaultdict
targets = defaultdict(set)
for e in workflow.get("edges", []):
    if e.get("type") == "default":
        targets[(e["target"], e["targetHandle"])].add(e["source"])
dupes = {k: v for k, v in targets.items() if len(v) > 1}
if dupes:
    raise ValueError(f"multiple batch input sources on: {dupes}")

Type guard

def has_single_batch_source(edges: list, node_id: str, handle: str) -> bool:
    srcs = {e["source"] for e in edges
            if e.get("target") == node_id and e.get("targetHandle") == handle and e.get("type") == "default"}
    return len(srcs) == 1

Try / catch

try:
    build_batch_child_workflow_session_results(...)
except UnsupportedWorkflowNodeError as e:
    if "multiple connected batch inputs" in str(e):
        dedupe_edges_for_node(extract_node_id(str(e)))

Prevention

When it happens

Trigger: A batch node (image_batch, string_batch, integer_batch, float_batch) has two or more default edges with different source nodes targeting the same field.

Common situations: Wiring two generators into one batch input to try to merge collections; copy-pasting edges in the canvas editor; refactoring a workflow and leaving a stale edge behind.

Related errors


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