invoke-ai/InvokeAI · error · ValueError
The selected system prompt '{system_prompt_id}' is not acces
Error message
The selected system prompt '{system_prompt_id}' is not accessible to this user. What it means
In multiuser mode, after resolving the record, the code enforces access control: the queue item's user must own the system prompt, the prompt must be public, or the user must be an admin. Otherwise a ValueError is raised to prevent using another user's private prompt.
Source
Thrown at invokeai/app/invocations/text_llm.py:165
un-privatizable here while the REST layer still 403s on it. The seeded defaults are
`is_public=TRUE`, so `record.is_public` already covers them.
(`call_saved_workflow` can keep its default-category clause: workflow `category=default`
is a real column value, not an overloaded owner id.)
"""
system_prompt_id = self.system_prompt.system_prompt_id
try:
record = context._services.system_prompt_records.get(system_prompt_id)
except SystemPromptNotFoundError as e:
raise ValueError(f"The selected system prompt '{system_prompt_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 = record.user_id == queue_user_id
if not (is_owner or record.is_public or is_admin):
raise ValueError(f"The selected system prompt '{system_prompt_id}' is not accessible to this user.")
return record
@torch.no_grad()
def invoke(self, context: InvocationContext) -> StringOutput:
record = self._resolve_system_prompt(context)
output = _run_text_llm(
context=context,
text_llm_model=self.text_llm_model,
prompt=self.prompt,
system_prompt=record.content,
max_tokens=self.max_tokens,
seed=self.seed,
)
return StringOutput(value=output)
View on GitHub (pinned to 0b6a024f2f)
Solutions
- Have the prompt owner set it to public so other users' queue items can use it.
- Log in / enqueue as the owning user or an admin account.
- Duplicate the prompt into your own account and point the workflow at your copy.
- Disable multiuser mode if this is a single-user install and access control is unnecessary.
Example fix
// before record.is_public = False; record.user_id = "admin" // after record.is_public = True # or pick a prompt owned by the queue user
Defensive patterns
Strategy: validation
Validate before calling
record = services.system_prompt_records.get(node.system_prompt.system_prompt_id)
user = services.users.get(queue_user_id)
if not (record.is_public or record.user_id == queue_user_id or (user and user.is_admin)):
raise PermissionError("Queue user cannot access this system prompt") Type guard
def can_access(record, user_id: str, is_admin: bool) -> bool:
return record.is_public or record.user_id == user_id or is_admin Try / catch
try:
result = invoke(context)
except ValueError as e:
if "not accessible to this user" in str(e):
duplicate_prompt_for_user(graph, queue_user_id)
retry(context)
else:
raise Prevention
- Make prompts public when building workflows for other users
- Duplicate prompts into the enqueuing user's account
- Audit workflow prompt ids when moving between single-user and multiuser modes
When it happens
Trigger: A non-admin user's queue item references a private system prompt owned by someone else (record.user_id != queue_user_id, record.is_public False, user.is_admin False) while config.multiuser is enabled.
Common situations: Sharing workflow JSON between users of a shared multiuser instance; an admin building workflows for regular users using admin-owned private prompts; changing ownership of prompts after user cleanup.
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
- Only admins can create default presets
- The selected saved workflow '${self.workflow_id}' is not acc
- Queue user is not authorized to access this image
- Queue user is not authorized to save images
- Queue user is not authorized to save images to this board
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/a24b9a983ff28e28.
Report an issue: GitHub.