invoke-ai/InvokeAI · error · UnsupportedWorkflowNodeError
call_saved_workflow generator node '{generator_node_data.get
Error message
call_saved_workflow generator node '{generator_node_data.get('id')}' is missing generator input What it means
After confirming the node is otherwise well-formed, _resolve_generator_items looks for inputs.generator and requires it to be a mapping. A missing or non-mapping 'generator' input means the node has no generator configuration, so it raises this error naming the offending node id.
Source
Thrown at invokeai/app/services/session_processor/workflow_call_batch.py:410
"integer_generator_linear_distribution",
"integer_generator_random_distribution_uniform",
"string_generator_dynamic_prompts_random",
}:
return int(value.get("count", 10))
return None
def _resolve_generator_items(
generator_node: Mapping[str, Any], services: Any, user_id: str | None, maximum_items: int
) -> list[Any]:
generator_node_data = generator_node["data"]
node_type = generator_node_data.get("type")
inputs = generator_node_data.get("inputs")
if not isinstance(node_type, str) or not _is_mapping(inputs):
raise UnsupportedWorkflowNodeError("call_saved_workflow generator node is malformed")
generator_input = inputs.get("generator")
if not _is_mapping(generator_input):
raise UnsupportedWorkflowNodeError(
f"call_saved_workflow generator node '{generator_node_data.get('id')}' is missing generator input"
)
generator_value = generator_input.get("value")
if not _is_mapping(generator_value):
raise UnsupportedWorkflowNodeError(
f"call_saved_workflow generator node '{generator_node_data.get('id')}' has invalid generator value"
)
declared_item_count = _get_declared_generator_item_count(generator_value)
if declared_item_count is not None and declared_item_count > maximum_items:
raise TooManySessionsError("call_saved_workflow exceeds remaining queue capacity for child workflow executions")
if node_type == "integer_generator":
return _resolve_integer_generator(generator_value)
if node_type == "float_generator":
return _resolve_float_generator(generator_value)
if node_type == "string_generator":
return _resolve_string_generator(generator_value)
if node_type == "image_generator":
return _resolve_image_generator(generator_value, services, user_id)View on GitHub (pinned to 0b6a024f2f)
Solutions
- Add a valid mapping under data.inputs.generator of the generator node (with a 'value' mapping inside)
- Re-save the workflow from the InvokeAI UI to regenerate the correct input structure
- Delete and re-add the generator node to recreate its default inputs
Example fix
// before
{"data": {"type": "string_generator", "inputs": {"count": {"value": 5}}}}
// after
{"data": {"type": "string_generator", "inputs": {"generator": {"value": {"count": 5, "start": 0, "stop": 10, "step": 1}}}}} Defensive patterns
Strategy: validation
Validate before calling
inputs = node["data"]["inputs"]
if not isinstance(inputs.get("generator"), dict):
raise ValueError(f"generator node {node['data']['id']} lacks a mapping inputs.generator") Type guard
def has_generator_input(node: dict) -> TypeGuard[dict]:
return isinstance(node.get("data", {}).get("inputs", {}).get("generator"), Mapping) Try / catch
try:
build_batch_child_workflow_session_results(...)
except UnsupportedWorkflowNodeError as e:
if "missing generator input" in str(e):
fix_node_generator_input(extract_node_id(str(e))) Prevention
- Create generator nodes via the canvas so inputs.generator is always populated
- Sanity-check workflow JSON after any scripted transformation
- Test queued workflows on a dev queue before production
When it happens
Trigger: An integer/float/string/image generator node whose data.inputs either omits the 'generator' key or stores a non-mapping (e.g. a plain value or list) at inputs.generator.
Common situations: Older workflow formats where generator config lived elsewhere; workflow JSON edited by scripts that wrote generator config at the wrong level; partially migrated saved workflows.
Understand the failure class
Background: "Missing required field" and "field is required" errors: why libraries reject payloads that omit mandatory fields — this error's family across 20 libraries.
Related errors
- call_saved_workflow child workflow is malformed
- call_saved_workflow batch child workflow node is missing req
- call_saved_workflow generator node is malformed
- call_saved_workflow generator node '{generator_node_data.get
- Video workflow not found
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/d8bee9953ddf0555.
Report an issue: GitHub.