invoke-ai/InvokeAI · error · UnsupportedWorkflowNodeError
Unsupported batch group id '{batch_group_id}' in called work
Error message
Unsupported batch group id '{batch_group_id}' in called workflow What it means
A batch node in a called child workflow declares a batch_group_id input whose value is not one of the identifiers InvokeAI supports when expanding batch child workflows ('None', 'Group 1'..'Group 5'). The grouper only knows how to co-schedule batches declared with these fixed group ids; anything else is rejected by _get_batch_group_id.
Source
Thrown at invokeai/app/services/session_processor/workflow_call_batch.py:205
)
raise UnsupportedWorkflowNodeError(
"call_saved_workflow does not yet support child workflows that mix supported batch nodes with "
f"unrelated generator nodes: {unsupported_nodes}"
)
def _get_batch_group_id(node_data: Mapping[str, Any]) -> str:
inputs = node_data.get("inputs")
if not _is_mapping(inputs):
return "None"
batch_group_input = inputs.get("batch_group_id")
if not _is_mapping(batch_group_input):
return "None"
batch_group_id = batch_group_input.get("value")
if not isinstance(batch_group_id, str):
return "None"
if batch_group_id not in SUPPORTED_BATCH_GROUP_IDS:
raise UnsupportedWorkflowNodeError(f"Unsupported batch group id '{batch_group_id}' in called workflow")
return batch_group_id
def _get_batch_items(node_data: Mapping[str, Any], field_name: str) -> list[Any]:
inputs = node_data.get("inputs")
if not _is_mapping(inputs):
raise UnsupportedWorkflowNodeError("call_saved_workflow batch child workflow node inputs are malformed")
batch_input = inputs.get(field_name)
if not _is_mapping(batch_input):
raise UnsupportedWorkflowNodeError(
f"call_saved_workflow batch child workflow node is missing required '{field_name}' input"
)
batch_items = batch_input.get("value")
if not isinstance(batch_items, list):
raise UnsupportedWorkflowNodeError(
f"call_saved_workflow batch child workflow node '{node_data.get('id')}' must provide a direct list for '{field_name}'"
)
return batch_itemsView on GitHub (pinned to 0b6a024f2f)
Solutions
- Change the batch node's batch_group_id to one of the supported values: 'None' or 'Group 1' through 'Group 5'
- Remove the batch_group_id input entirely (it defaults to 'None')
- Re-export the workflow from a compatible InvokeAI version and re-save
- Upgrade InvokeAI if a newer release widened SUPPORTED_BATCH_GROUP_IDS
Example fix
// before
"batch_group_id": { "value": "my-custom-group" }
// after
"batch_group_id": { "value": "Group 1" } Defensive patterns
Strategy: validation
Validate before calling
SUPPORTED_BATCH_GROUP_IDS = {"None", *{f"Group {i}" for i in range(1, 6)}}
for node in workflow.get("nodes", []):
data = node.get("data", {}) if isinstance(node, dict) else {}
gi = data.get("inputs", {}).get("batch_group_id")
v = gi.get("value") if isinstance(gi, dict) else None
if isinstance(v, str) and v not in SUPPORTED_BATCH_GROUP_IDS:
raise ValueError(f"batch_group_id '{v}' not supported in called workflow") Type guard
def is_supported_batch_group_id(v: object) -> bool:
return isinstance(v, str) and v in {"None", "Group 1", "Group 2", "Group 3", "Group 4", "Group 5"} Try / catch
try:
sessions = build_batch_child_workflow_sessions(...)
except UnsupportedWorkflowNodeError as e:
m = re.search(r"Unsupported batch group id '(.+?)'", str(e))
if m:
workflow = rewrite_batch_group_ids(workflow, default="None")
sessions = build_batch_child_workflow_sessions(...)
else:
raise Prevention
- Only use 'None' or 'Group 1'-'Group 5' as batch_group_id in workflows intended for call_saved_workflow
- Validate workflow JSON against supported group ids before submitting
- Avoid hand-editing batch_group_id values
- Pin workflow exports to the same InvokeAI version as the server
When it happens
Trigger: Calling a saved workflow whose batch node's batch_group_id input value is a custom string (e.g. typed name, UUID, or a group created in a newer UI version) instead of 'None' or 'Group 1'-'Group 5'.
Common situations: Hand-editing workflow JSON and setting an arbitrary group id; workflows saved by a newer frontend version that allows more/custom group names; copy-pasting group ids between workflows.
Related errors
- A saved workflow must be selected before executing call_save
- The selected saved workflow '${self.workflow_id}' could not
- call_saved_workflow child workflow is malformed
- call_saved_workflow does not yet support child workflows tha
- call_saved_workflow batch child workflow node inputs are mal
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/135ce34ec426473c.
Report an issue: GitHub.