invoke-ai/InvokeAI · error · TooManySessionsError
call_saved_workflow exceeds remaining queue capacity for chi
Error message
call_saved_workflow exceeds remaining queue capacity for child workflow executions
What it means
Before expanding a generator, its declared item count is checked against the remaining queue capacity (maximum_items). If the generator would produce more child sessions than the queue can accept, TooManySessionsError is raised to protect the queue from an oversized batch.
Source
Thrown at invokeai/app/services/session_processor/workflow_call_batch.py:420
) -> 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)
raise UnsupportedWorkflowNodeError(f"Unsupported generator node type '{node_type}'")
def _get_generator_placeholder_items(generator_node: Mapping[str, Any]) -> list[Any]:
generator_node_data = generator_node["data"]
node_type = generator_node_data.get("type")
if node_type == "integer_generator":
return [0]
if node_type == "float_generator":
return [0.0]View on GitHub (pinned to 0b6a024f2f)
Solutions
- Reduce the generator's declared item count (lower 'count' or narrow start/stop) so it fits remaining capacity
- Clear completed/failed sessions or cancel queued items to free queue capacity
- Raise the queue capacity limit configuration, then re-enqueue the workflow
Example fix
// before: count=1000 but only 50 slots remain
"inputs": {"generator": {"value": {"count": 1000, "start": 0, "stop": 1000, "step": 1}}}
// after
"inputs": {"generator": {"value": {"count": 50, "start": 0, "stop": 50, "step": 1}}} Defensive patterns
Strategy: try-catch
Validate before calling
declared = compute_declared_item_count(node["data"]["inputs"]["generator"]["value"])
remaining = queue_service.get_remaining_capacity(batch_id)
if declared > remaining:
shrink_generator_range(node, remaining) # or raise before enqueue Type guard
def is_within_capacity(declared_count: int, maximum_items: int) -> bool:
return declared_count <= maximum_items Try / catch
from invokeai.app.services.session_queue.session_queue_common import TooManySessionsError
try:
enqueue_batch(batch)
except TooManySessionsError as e:
trim_batch_and_reenqueue(batch, e) Prevention
- Check queue capacity (calc_session_count) before enqueueing large generators
- Keep generator ranges modest (count/start/stop/step)
- Set alerts on queue depth near capacity
When it happens
Trigger: Queueing a call_saved_workflow whose generator (e.g. integer range of 1000 items) exceeds the queue's remaining capacity for that batch, i.e. declared_item_count > maximum_items.
Common situations: Large range generators (count/start/stop) combined with a nearly-full queue or a low max-queue-size setting; replaying an old batch after the queue grew.
Related errors
- call_saved_workflow exceeds remaining queue capacity for chi
- call_saved_workflow exceeds remaining queue capacity for chi
- Failed to add images to board
- Failed to remove images from board
- Unexpected error while enqueuing batch: {e}
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/150b8e377d83e45e.
Report an issue: GitHub.