invoke-ai/InvokeAI · error · ValueError
The selected saved workflow '${self.workflow_id}' is not acc
Error message
The selected saved workflow '${self.workflow_id}' is not accessible to this user. What it means
In multiuser mode InvokeAI enforces access control on saved workflows. validate_selected_workflow denies execution unless the requesting queue user is an admin, the workflow's owner, the workflow is public, or it is a Default-category workflow.
Source
Thrown at invokeai/app/invocations/call_saved_workflow.py:68
def validate_selected_workflow(self, context: InvocationContext):
if not self.workflow_id:
raise ValueError("A saved workflow must be selected before executing call_saved_workflow.")
try:
workflow_record = context._services.workflow_records.get(self.workflow_id)
except WorkflowNotFoundError as e:
raise ValueError(f"The selected saved workflow '{self.workflow_id}' could not be found.") from e
config = context._services.configuration
if config.multiuser:
queue_user_id = context._data.queue_item.user_id
user = context._services.users.get(queue_user_id)
is_admin = bool(user and user.is_admin)
is_owner = workflow_record.user_id == queue_user_id
is_default = workflow_record.workflow.meta.category is WorkflowCategory.Default
if not (is_default or is_owner or workflow_record.is_public or is_admin):
raise ValueError(f"The selected saved workflow '{self.workflow_id}' is not accessible to this user.")
return workflow_record
def invoke(self, context: InvocationContext) -> WorkflowReturnOutput:
self.validate_selected_workflow(context)
return WorkflowReturnOutput(values={})
View on GitHub (pinned to 0b6a024f2f)
Solutions
- Have the workflow owner mark the workflow public (or be a Default workflow).
- Ask an admin user to run the queue item, or grant the queue user admin rights.
- Re-create/copy the workflow under the executing user's account and point the node at it.
- Disable multiuser in config if access control is not needed.
Example fix
// before (config.multiuser = true, workflow private, other user's) // after: owner sets workflow.is_public = True (or share as Default category) before queueing
Defensive patterns
Strategy: validation
Validate before calling
user = context._services.users.get(queue_item.user_id)
record = context._services.workflow_records.get(node.workflow_id)
allowed = record.workflow.meta.category is WorkflowCategory.Default or record.is_public or record.user_id == queue_item.user_id or (user and user.is_admin)
if not allowed:
raise PermissionError("workflow not accessible to this user") Try / catch
try:
node.invoke(context)
except ValueError as e:
if "not accessible to this user" in str(e):
request_access_or_run_as_owner()
else:
raise Prevention
- Only reference workflows owned by the executing queue user, or made public/Default
- In multiuser mode, run graphs under the owner's account
- Document workflow-sharing rules for teams
When it happens
Trigger: invoke()/run_node() in multiuser mode where workflow_record.user_id != queue_item.user_id, workflow_record.is_public is False, meta.category is not Default, and the queue user is not an admin.
Common situations: One user referencing another user's private workflow in a shared graph; running queued graphs from a service account that differs from the workflow owner; workflows left non-public after multiuser was enabled in config.
Understand the failure class
Background: Permission denied / not authorized / 403 Forbidden: access-control rejections when the caller lacks the required role, grant, or ownership — this error's family across 18 libraries.
Related errors
- Not authorized to access this workflow
- call_saved_workflow could not access board '{board_id}' for
- call_saved_workflow caller does not have access to board '{b
- Queue user is not authorized to access this image
- Queue user is not authorized to save images
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/b21d45f00be0a599.
Report an issue: GitHub.