ErrLookup › HeyPuter/puter
HeyPuter/puter
🌐 The Internet Computer! Free, Open-Source, and Self-Hostable. · TypeScript · 699 source files
Analyzed at 908ec23eda on 2026-08-12. 202 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| ${key} must be an integer between ${min} and ${max} | http | error | ai-video, filesystem, validation, path |
| Missing `app_uuid` | http | error | ai-video, acl, permissions, filesystem |
| App not found | http | error | ai-video, auth, metering, credits |
| App owner not found | http | error | ai-video, gemini, validation, prompt |
| Authentication required | http | warning | ai-video, gemini, content-filter, moderation |
| Permission denied | http | error | ai-video, openai, sora, validation, prompt |
| Authentication required | http | error | ai-video, together, validation, prompt |
| Invalid orderBy. Allowed: ${ALLOWED_ORDER_BY.join(', ')} | http | error | ai-video, together, auth, metering |
| appId parameter is required | http | error | apps, validation, api-shape |
| App not found | http | warning | apps, dedupe, concurrency, naming |
bad_request Failed to batch write all items to DynamoDB | http | error | apps, naming, uniqueness, validation |
bad_request No ETag for ${filePath} part ${partNumber} | validation | error | apps, not-found, lookup |
bad_request Missing or invalid `name` query param | validation | error | apps, pagination, validation, cursor |
forbidden Access tokens cannot report app opens | http | error | apps, not-found, update, lookup |
not_found App not found | http | error | apps, not-found, analytics, validation |
bad_request session is required. | validation | error | auth, login, validation, session, bad-request |
forbidden Origin not allowed | http | error | auth, login, security, origin, forbidden, browser |
request_timeout Request timeout. | http | warning | auth, login, timeout, session, polling |
password_required Password is required. | validation | error | auth, login, validation, password, bad-request |
not_found Username not found. | http | error | auth, login, not-found, user |
account_suspended This account is suspended. | http | error | auth, login, account, suspended, unauthorized |
unauthorized Incorrect password. | http | error | auth, login, password, oauth, unauthorized |
password_mismatch Incorrect password. | http | error | auth, login, password, unauthorized, credentials |
username_already_in_use This username is not available. | http | error | auth, signup, validation, username, reserved |
signup_disabled User registration is disabled. | http | error | auth, signup, config, operator, forbidden |
| Signup blocked Request Code: ${requestCode} | http | warning | auth, signup, abuse-prevention, extension, forbidden |
must_login_or_signup Temporary accounts are disabled | http | warning | auth, signup, temp-user, abuse-prevention, forbidden |
user_not_found User not found. | http | error | auth, email-confirmation, not-found, account, session |
bad_request `url` must be a string or null | http | warning | desktop, validation, type-check, preferences |
not_found Item not found | http | error | validation, desktop, not-found, fsentry |
forbidden Not allowed to update this item | http | error | authorization, desktop, forbidden, ownership, fsentry |
bad_request Missing or invalid `interface` | http | error | validation, drivers, bad-request, rpc |
not_found Driver not found: ${ifaceName}:${resolvedName ?? '(no default)'} | http | error | drivers, not-found, rpc, registration |
forbidden Permission denied for ${ifaceName}:${method} | http | error | authorization, drivers, forbidden, permissions, rpc |
bad_request Exactly one of `app` and `origin` is required | exception | error | validation, feedback, bad-request, xor |
unauthorized Unauthorized | exception | error | auth, unauthorized, feedback, actor |
conflict Duplicate file content for batch index ${itemIndex} | exception | warning | fs, batch-write, multipart, duplicate, conflict |
| Failed to resolve prepared batch item for index ${index} | exception | error | fs, batch-write, internal-error, invariant |
unauthorized Unauthorized | exception | error | fs, auth, api, unauthorized |
not_found Entry not found | exception | error | fs, not-found, api, node-ref |
access_denied Access denied | exception | error | fs, acl, access-denied, api, not-found |
cannot_write_to_root Cannot write to root path | exception | error | fs, validation, api, path, write, bad-request |
dest_is_not_a_directory Target is not a directory | http | error | fs, legacy, readdir, validation |
bad_request `path` is required | http | error | fs, legacy, mkdir, validation |
subject_does_not_exist Entry not found: uid=${uid} | http | error | fs, legacy, thumbnail, not-found, http-404 |
cannot_read_a_directory Cannot read a directory | http | error | fs, legacy, read, validation |
token_auth_failed Token authentication failed | http | error | auth, query-param, token, fs-read |
forbidden Forbidden | http | error | auth, app-session, sign, forbidden |
not_found App not found | http | error | validation, app-uid, not-found, sign |
internal_error Owner not found | http | critical | internal-error, data-integrity, writefile, user-store |
account_suspended Account suspended | http | error | auth, suspended, writefile, account |
unauthorized Unauthorized | http | error | auth, app-session, app-root, unauthorized |
shortcut_target_not_found shortcut op missing `name` | http | error | batch, shortcut, validation, bad-request |
not_found Entry not found: ${raw} | http | error | filesystem, not-found, selector, v1-api |
subject_does_not_exist Entry not found: path=${path} | http | error | acl, authz, app, not-found, security |
| Access denied | http | error | acl, authz, not-found, v1-api |
access_denied Access denied | http | error | acl, authz, forbidden, access-denied, v1-api |
internal_error Server misconfiguration: url_signature_secret not set | http | critical | config, security, self-hosting, signed-urls, http-500 |
bad_request Missing or invalid `site_uuid` | http | error | validation, hosting, api-input, http-400, bad-request |
not_found Site not found or not owned by you | http | error | hosting, authorization, not-found, http-404, idempotency |
forbidden Cannot delete a protected subdomain | http | error | hosting, authorization, forbidden, http-403, protected-resource |
bad_request `uid` must be a non-empty string | http | error | validation, notifications, api-input, http-400, bad-request |
unauthorized Unauthorized | http | error | authentication, notifications, http-401, unauthorized, middleware |
bad_request Missing `opener_state` | http | error | oidc, authentication, validation, popup, http-400, bad-request |
not_found Provider not configured. | http | error | oidc, authentication, config, not-found, http-404 |
internal_error Could not build authorization URL. | http | error | oidc, authentication, config, internal-error, http-500, network |
response_timeout TURN not configured | http | warning | webrtc, turn, config, cloudflare, self-hosting, http-503 |
internal_error TURN credential generation failed | http | error | webrtc, turn, cloudflare, upstream-failure, http-500, network |
forbidden Forbidden | http | error | webrtc, turn, config, internal-api, forbidden, http-403, security |
bad_request Missing `records` array | http | error | webrtc, turn, validation, internal-api, http-400, bad-request |
bad_request `messages` must be an array of chat messages | http | error | ai, api, openai-compatible, validation, bad-request |
bad_request `message` is required | http | error | api, contact, validation, bad-request, user-actor |
not_found Not Found | http | error | webdav, filesystem, not-found, api |
bad_request Cannot GET a directory | http | warning | webdav, filesystem, bad-request, is-dir |
forbidden Cannot create at root | http | error | webdav, mkcol, forbidden, filesystem, root |
dest_is_not_a_directory Destination parent missing or not a directory | http | error | webdav, http, copy, filesystem, conflict, destination |
token_missing Missing Lock-Token header | http | error | webdav, http, unlock, locking, validation |
permission_denied Permission denied | http | error | webdav, http, acl, permission, forbidden, read |
token_missing Missing `token` | exception | error | wisp, http, token, validation, jwt |
invalid_token wrong token type | exception | error | auth, token, wisp, type-tag |
forbidden Forbidden | exception | warning | wisp, policy, extension, forbidden, rbac |
app_or_api_token_required This API cannot be called with an account session token. Use an app or worker to | exception | error | auth, token, api-token, gate, session |
email_confirmation_required Please confirm your email to continue | exception | error | email, verification, account, gate |
phone_verification_required Please verify your phone number to continue | exception | error | verification, phone, account, gate |
card_verification_required Please verify your card to continue | exception | error | verification, card, billing, account, gate |
forbidden Account suspended | exception | error | account, suspended, forbidden, moderation |
unauthorized User required | exception | error | auth, user-protected, session, unauthorized |
not_found User not found | exception | error | user-protected, not-found, data-integrity, account |
account_suspended Account is suspended | exception | error | account, suspended, user-protected, moderation |
internal_error user-protected state missing | exception | critical | internal, bug, middleware, user-protected, misconfiguration |
temporary_account Temporary account | exception | error | account, temp, user-protected, anonymous |
oidc_revalidation_required OIDC revalidation required | exception | error | oidc, sso, revalidation, user-protected |
password_mismatch Password mismatch | exception | warning | password, auth, user-protected, mismatch |
password_required Password required | exception | error | password, auth, user-protected, reconfirmation |
account_is_not_verified Account email is not verified | exception | error | email, verification, gate, strict |
unauthorized Authentication required | exception | error | auth, ai, chat, context, unauthorized |
bad_request Model not found: ${args.model} | exception | error | ai, model, validation, bad-request |
forbidden Prompt blocked by policy | exception | error | ai-chat, moderation, config, forbidden |
bad_request message is not allowed | http | error | ai-chat, moderation, content-policy, bad-request |
bad_response an empty response was generated | http | error | ai-chat, responses-api, empty-response, bad-response |
unauthorized Authentication required | http | error | ai-image, authentication, actor, unauthorized |
bad_request User ID required for puter_output_path | http | error | ai-image, validation, filesystem, bad-request |
internal_error No provider found for model ${model.id} | http | critical | ai-image, config, internal-error, provider-registration |
cannot_write_to_root Cannot write to root path | http | error | ai-image, filesystem, validation, path-traversal, bad-request |
access_denied Write access denied for destination | http | error | ai-image, acl, permissions, filesystem, access-denied |
bad_request ${providerLabel} supports only a single input image; pass one image via input_im | http | error | ai-image, validation, input-images, bad-request |
bad_request `prompt` must be a non-empty string | http | error | ai-image, cloudflare, validation, prompt, bad-request |
unauthorized actor not found in context | http | error | ai-image, cloudflare, authentication, actor, unauthorized |
insufficient_funds Insufficient credits for image generation | http | error | ai-image, cloudflare, billing, credits, insufficient-funds |
unknown_error Cloudflare image generation failed with status ${response.status} | http | error | ai-image, cloudflare, provider, network, unknown-error, retryable |
bad_request `prompt` must be a non-empty string | http | error | validation, input-validation, gemini, ai-image, bad-request |
insufficient_funds Insufficient credits for image generation | http | error | billing, credits, gemini, ai-image, insufficient-funds, payment |
unknown_error Failed to extract image URL from Gemini response | http | error | gemini, ai-image, upstream-response, content-filtering, unknown-error |
unauthorized actor not found in context | http | critical | auth, context, als, gemini, ai-image, unauthorized, wiring |
bad_request `prompt` must be a string | http | error | validation, input-validation, openai, ai-image, bad-request |
insufficient_funds Insufficient credits for image generation | http | error | billing, credits, openai, ai-image, insufficient-funds, payment |
unknown_error Failed to extract image URL from OpenAI response | http | error | openai, ai-image, upstream-response, content-filtering, unknown-error |
bad_request `prompt` must be a non-empty string | http | error | validation, input-validation, replicate, ai-image, bad-request |
unauthorized actor not found in context | http | critical | auth, context, als, replicate, ai-image, unauthorized, wiring |
unknown_error Error calculating cost for Replicate model ${selectedModel.id} | http | error | configuration, billing, replicate, ai-image, cost-estimation, unknown-error |
insufficient_funds Insufficient credits for image generation | http | error | billing, credits, replicate, ai-image, insufficient-funds, payment |
bad_request `prompt` must be a non-empty string | validation | warning | together, image-generation, input-validation, prompt |
unauthorized actor not found in context | http | error | together, authentication, context, als, actor |
insufficient_funds Insufficient credits for image generation | http | warning | together, billing, credits, insufficient-funds, image-generation |
upstream_bad_request Together AI response did not include image data | http | error | together, upstream-response, image-generation, transient, retry |
bad_request `prompt` must be a non-empty string | validation | warning | xai, image-generation, input-validation, prompt |
insufficient_funds Insufficient credits for image generation | http | warning | xai, billing, credits, insufficient-funds, image-generation |
internal_error No OCR provider configured | http | error | ocr, configuration, provider, server-config, internal-error |
unauthorized Authentication required | http | error | ocr, authentication, context, als, actor, unauthorized |
bad_request `source` is required | validation | warning | ocr, input-validation, source, missing-parameter |
insufficient_funds Insufficient credits | http | warning | ocr, aws, textract, billing, credits, insufficient-funds |
bad_request Speech-to-speech provider not found: ${args.provider}. Available: ${PROVIDERS.jo | validation | error | validation, provider-routing, speech2speech |
internal_error ElevenLabs API key not configured | http | error | config, credentials, elevenlabs, speech2speech |
unauthorized Authentication required | http | critical | auth, authentication, context, speech2speech |
insufficient_funds Insufficient credits | http | error | billing, credits, speech2speech |
| ElevenLabs returned ${response.status} | http | error | upstream, network, elevenlabs, speech2speech |
internal_error Speech-to-text provider not configured: ${providerName} | http | error | config, provider-routing, speech2txt |
bad_request Speech-to-text provider not found: ${String(args.provider)}. Available: ${SPEECH | validation | error | validation, provider-routing, speech2txt |
unauthorized Authentication required | http | critical | auth, authentication, context, speech2txt |
bad_request `file` is required | validation | error | validation, input, speech2txt |
bad_request Streaming transcription is not yet supported | validation | warning | unsupported, streaming, speech2txt, openai |
internal_error OpenAI API key not configured | http | error | config, credentials, openai, speech2txt |
insufficient_funds Insufficient credits | http | error | billing, credits, speech2txt, openai |
internal_error xAI API key not configured | http | error | config, credentials, xai, speech-to-text, server-error |
insufficient_funds Insufficient credits | http | error | billing, credits, xai, speech-to-text, pre-flight |
| errText || `xAI STT request failed (status ${response.status | http | error | upstream, xai, speech-to-text, network, rate-limit, auth |
unauthorized Authentication required | http | error | auth, tts, unauthorized, context |
bad_request TTS provider not configured: ${providerName}. Available: ${Object.keys(this.#pro | validation | error | config, tts, provider-routing, credentials |
invalid_engine Invalid engine: ${engine}. Valid engines: ${VALID_ENGINES.join(', ')} | validation | error | aws-polly, tts, validation, engine, input |
field_required Missing required field: text | validation | error | aws-polly, tts, validation, required-field, input |
insufficient_funds Insufficient funds | http | error | aws-polly, tts, billing, credits, pre-flight |
| upstreamMessage ?? `ElevenLabs request failed (status ${resp | http | error | elevenlabs, tts, upstream, network, rate-limit, auth |
field_required Missing required field: text | validation | error | elevenlabs, tts, validation, required-field, input |
field_invalid Invalid model: ${modelId}. Expected: ${expected.join(', ')} | validation | error | elevenlabs, tts, validation, model, billing |
insufficient_funds Insufficient funds | http | error | elevenlabs, tts, billing, credits, pre-flight |
field_required Missing required field: text | validation | error | gemini, tts, validation, required-field, input |
field_invalid Invalid model: ${model}. Expected: ${GEMINI_TTS_MODELS.map(({ id }) => id).join( | validation | error | gemini, tts, validation, model, input |
internal_error No cost data for model: ${model} | http | error | gemini, tts, internal-error, config, cost-table, bug |
insufficient_funds Insufficient funds | http | error | gemini, tts, billing, credits, pre-flight |
upstream_bad_request Gemini TTS did not return audio data | http | error | gemini, tts, upstream, safety, audio, validation |
field_required Missing required field: text | validation | error | |
field_invalid Invalid model: ${model}. Expected: ${OPENAI_TTS_MODELS.map(({ id }) => id).join( | validation | error | |
insufficient_funds Insufficient funds | http | error | |
field_required Missing required field: text | validation | error | |
field_invalid Invalid model: ${model}. Expected: ${SPEECHIFY_TTS_MODELS.map(({ id }) => id).jo | validation | error | |
insufficient_funds Insufficient funds | http | error | |
| errText || `Speechify TTS request failed (status ${response. | http | error | |
upstream_bad_request Speechify TTS did not return audio data | http | error | |
field_required Missing required field: text | validation | error | |
bad_request Text exceeds maximum length of 15,000 characters | validation | error | |
insufficient_funds Insufficient funds | http | error | |
upstream_bad_request xAI TTS request failed (status ${response.status}) | http | error | |
unauthorized Authentication required | http | error | |
bad_request User ID required for puter_output_path | http | error | |
internal_error No provider found for model ${model.id} | http | error | |
cannot_write_to_root Cannot write to root path | http | error | |
access_denied Write access denied for destination | http | error | |
unauthorized Authentication required | http | error | |
bad_request prompt must be a non-empty string | validation | error | |
unauthorized Authentication required | http | error | |
disallowed_value Video was filtered due to ${reasons} | http | error | |
bad_request prompt must be a non-empty string | validation | error | |
upstream_failed Video generation failed | http | error | |
bad_request prompt must be a non-empty string | validation | error | |
unauthorized Authentication required | http | error | |
insufficient_funds Insufficient funds | http | error | |
upstream_failed Video generation failed | http | error | |
bad_request Missing or invalid `object` | validation | error | |
app_name_already_in_use Failed to dedupe app name | http | error | |
not_found App not found | http | error | |
conflict An app with this name already exists | http | warning | apps, conflict, validation, driver |
forbidden Cannot delete a protected app | http | error | apps, forbidden, protected, delete, driver |
unauthorized Authentication required | http | critical | apps, auth, unauthorized, driver |
app_index_url_already_in_use App index_url already in use | http | warning | apps, index-url, conflict, driver |
subdomain_not_owned Subdomain not owned by user | http | warning | apps, index-url, subdomain, validation, driver |
bad_request Missing `key` | http | warning | kv, validation, bad-request, driver |
forbidden kv: `${method}` is not available on another app's data | http | error | kv, cross-app, forbidden, permissions, driver |
subject_does_not_exist entity_not_found: app:${targetAppUid} | http | error | kv, cross-app, not-found, permissions, validation |
bad_request Missing or invalid `object` | http | error | notifications, validation, bad-request |
not_found Notification not found | http | error | notifications, not-found, validation |
unauthorized Authentication required | http | critical | notifications, authentication, unauthorized, security |
forbidden User actor required | http | error | authentication, actor, notifications, forbidden, permissions, access-token, system-actor |