{"record":{"id":"04bda2cc2d0b132e","repo":"invoke-ai/InvokeAI","slug":"unsupported-generator-node-type-node-type","errorCode":null,"errorMessage":"Unsupported generator node type '{node_type}'","messagePattern":"Unsupported generator node type '(.+?)'","errorType":"exception","errorClass":"UnsupportedWorkflowNodeError","httpStatus":null,"severity":"error","filePath":"invokeai/app/services/session_processor/workflow_call_batch.py","lineNumber":429,"sourceCode":"            f\"call_saved_workflow generator node '{generator_node_data.get('id')}' is missing generator input\"\n        )\n    generator_value = generator_input.get(\"value\")\n    if not _is_mapping(generator_value):\n        raise UnsupportedWorkflowNodeError(\n            f\"call_saved_workflow generator node '{generator_node_data.get('id')}' has invalid generator value\"\n        )\n    declared_item_count = _get_declared_generator_item_count(generator_value)\n    if declared_item_count is not None and declared_item_count > maximum_items:\n        raise TooManySessionsError(\"call_saved_workflow exceeds remaining queue capacity for child workflow executions\")\n    if node_type == \"integer_generator\":\n        return _resolve_integer_generator(generator_value)\n    if node_type == \"float_generator\":\n        return _resolve_float_generator(generator_value)\n    if node_type == \"string_generator\":\n        return _resolve_string_generator(generator_value)\n    if node_type == \"image_generator\":\n        return _resolve_image_generator(generator_value, services, user_id)\n    raise UnsupportedWorkflowNodeError(f\"Unsupported generator node type '{node_type}'\")\n\n\ndef _get_generator_placeholder_items(generator_node: Mapping[str, Any]) -> list[Any]:\n    generator_node_data = generator_node[\"data\"]\n    node_type = generator_node_data.get(\"type\")\n    if node_type == \"integer_generator\":\n        return [0]\n    if node_type == \"float_generator\":\n        return [0.0]\n    if node_type == \"string_generator\":\n        return [\"\"]\n    if node_type == \"image_generator\":\n        return [ImageField(image_name=\"compatibility-placeholder\")]\n    raise UnsupportedWorkflowNodeError(f\"Unsupported generator node type '{node_type}'\")\n\n\ndef _get_outgoing_default_edges(\n    node_id: str, source_handle: str, workflow_edges: Sequence[Mapping[str, Any]]","sourceCodeStart":411,"sourceCodeEnd":447,"githubUrl":"https://github.com/invoke-ai/InvokeAI/blob/0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06/invokeai/app/services/session_processor/workflow_call_batch.py#L411-L447","documentation":"_resolve_generator_items only handles node types integer_generator, float_generator, string_generator, and image_generator. Any other *_generator node type falls through to this UnsupportedWorkflowNodeError, since batch expansion cannot compute items for it.","triggerScenarios":"A generator node in a call_saved_workflow whose data.type is not one of the four supported *_generator types (e.g. 'prompt_generator' or a custom generator) reaching the item-resolution step.","commonSituations":"Third-party/custom generator nodes used as batch sources; workflows saved from newer InvokeAI versions with new generator node types; typos in node type.","solutions":["Replace the node with one of the supported generators (integer/float/string/image generator)","Upgrade InvokeAI to a version that supports this generator node type in batch expansion","Remove the node from the batch path or supply its items via a static batch field instead"],"exampleFix":"// before: unsupported custom generator\n{\"data\": {\"type\": \"prompt_generator\", ...}}\n// after\n{\"data\": {\"type\": \"string_generator\", \"inputs\": {\"generator\": {\"value\": {...}}}}}","handlingStrategy":"validation","validationCode":"SUPPORTED = {\"integer_generator\", \"float_generator\", \"string_generator\", \"image_generator\"}\nfor node in workflow.get(\"nodes\", []):\n    t = node.get(\"data\", {}).get(\"type\", \"\")\n    if t.endswith(\"_generator\") and t not in SUPPORTED:\n        raise ValueError(f\"node {node.get('id')} uses unsupported generator type {t}\")","typeGuard":"def is_supported_generator(node: dict) -> TypeGuard[dict]:\n    return node.get(\"data\", {}).get(\"type\") in {\n        \"integer_generator\", \"float_generator\", \"string_generator\", \"image_generator\"}","tryCatchPattern":"try:\n    build_batch_child_workflow_session_results(...)\nexcept UnsupportedWorkflowNodeError as e:\n    if \"Unsupported generator node type\" in str(e):\n        suggest_supported_replacement(e)","preventionTips":["Audit third-party generator nodes before using them as batch sources","Match workflow node types to the server version's supported set","Prefer the four built-in generators for batch expansion"],"tags":["workflow","unsupported-feature","batch"],"backgroundTag":"unsupported-workflow-node","analyzedSha":"0b6a024f2ff6a86bfb953dcdb9cc504ef7397a06","analyzedAt":"2026-08-29T04:46:49.967Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}