ErrLookup › moeru-ai/airi
moeru-ai/airi
💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-sama's altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported. · TypeScript · 1,734 source files
Analyzed at 27111382b4 on 2026-08-12. 259 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| AIRI host websocket bridge is unavailable | exception | error | websocket, native-bridge, stage-pocket, capacitor, runtime-environment |
| No candidate server channel URL was reachable. ${errors.join | exception | error | websocket, network, stage-pocket, server-channel, qr-probe, timeout |
| AIRI host websocket bridge is unavailable | exception | error | websocket, native-bridge, stage-pocket, runtime-environment |
| Invalid remote debug port: ${env.APP_REMOTE_DEBUG_PORT} | exception | error | electron, configuration, environment-variables, debugging, startup |
| Token exchange failed (${response.status}): ${text} | exception | error | oidc, auth, network, electron, pkce |
| No reachable private LAN address is available for the curren | exception | error | server-channel, network, configuration, electron, qr, lan |
| Failed to apply server channel configuration | exception | error | server-channel, electron, ipc, configuration, restart, certificates |
| Invalid Godot stage scene input payload. | validation | error | godot-stage, validation, valibot, ipc, electron, schema |
| Unable to locate engines/stage-tamagotchi-godot/project.godo | exception | error | godot-stage, filesystem, development, electron, repository-layout |
| GODOT4 points to a missing Godot executable.\nConfigured pat | exception | error | godot-stage, environment-variables, filesystem, development, configuration |
| GODOT4 must point to the Godot executable file, not a direct | exception | error | godot-stage, environment-variables, filesystem, development, macos, configuration |
| Godot stage exported binary not found. Expected at: ${join(p | exception | critical | godot-stage, packaging, electron, build, sidecar, distribution |
| GODOT4 is required to start Godot Stage in development mode. | exception | error | godot-stage, environment-variables, development, configuration, startup |
| Godot stage is not running. | exception | error | godot-stage, lifecycle, ipc, electron, state-machine |
| Godot stage bridge is not connected. | exception | error | godot-stage, websocket, ipc, electron, lifecycle, connection |
| Previous Godot stage process is still shutting down. Retry a | exception | error | godot-stage, lifecycle, process-management, electron, concurrency |
EXTENSION_ASSET_METHOD_NOT_ALLOWED Method Not Allowed | http | warning | http, h3, static-assets, extensions, method-not-allowed, ipc, electron |
EXTENSION_ASSET_REQUEST_INVALID Unauthorized | http | error | http, authentication, extensions, static-assets |
| mcp server is not running: ${serverName} | exception | error | mcp, ipc, process-lifecycle, extensions |
| Extension asset server base URL is unavailable; start the as | exception | error | extensions, static-assets, lifecycle, startup-order |
| Extension manifest not found: ${extensionId} | exception | error | extensions, registry, manifest, lifecycle |
| Gamelet `${bindingId}` is not open. | exception | error | gamelet, widgets, lifecycle, ipc |
| Failed to fetch image: ${response.statusText} | exception | error | network, artistry, image-download, fetch |
| Artistry provider is disabled. | exception | warning | artistry, config, feature-flag, providers |
| Provider '${requestedProvider}' not found. | exception | error | artistry, providers, config, registry |
| Image generation timed out after 5 minutes. | exception | error | artistry, timeout, polling, providers |
| Generation failed | exception | error | artistry, generation, providers, gpu |
| HTTP ${resp.status} | exception | error | comfyui, connection-test, network, artistry |
| Cannot connect to ComfyUI at ${this.serverUrl}: ${e.message} | exception | error | comfyui, network, connection, artistry |
| Workflow error: ${errorBody.slice(0, 200)} | exception | error | comfyui, workflow, validation, artistry |
| ComfyUI returned no prompt_id | exception | error | comfyui, api-schema, validation, artistry |
| Generation timed out after 5 minutes | exception | error | comfyui, timeout, polling, artistry |
| ComfyUI disconnected during polling: ${e.message} | exception | error | comfyui, network, polling, connection, artistry |
| ComfyUI upload failed: ${error} | exception | error | comfyui, upload, network, artistry |
| Nano Banana API Key not configured | validation | error | nanobanana, artistry, config, credentials, providers |
| Nano Banana API Error | exception | error | nanobanana, artistry, api, providers, credentials |
| No image data returned from Nano Banana | exception | error | nanobanana, artistry, api, providers, validation |
| Replicate provider is not configured. Missing API Key. | validation | error | configuration, api-key, artistry, replicate, precondition |
| No output received from Replicate. | exception | error | replicate, network, artistry, upstream |
| Output does not contain a recognizable image URL. | exception | error | replicate, version-compat, artistry, parsing |
| Replicate returned an empty output array. | exception | error | replicate, artistry, upstream, empty-result |
| ${openResult} | exception | error | electron, filesystem, os, ipc, shell |
| Failed to fetch GitHub releases atom (${atomResponse.status} | exception | warning | network, auto-updater, github, rate-limit, fallback |
| No GitHub release found for update lane "${lane}" | exception | warning | auto-updater, github, configuration, release-channel |
| No active source selected | validation | error | screen-capture, ui-state, precondition, electron |
| Selected source did not provide a live video track | exception | error | screen-capture, permissions, media, electron |
| Failed to create canvas context | exception | error | screen-capture, canvas, gpu, resource-exhaustion |
| Godot Stage currently supports VRM models only. | validation | error | godot, display-model, vrm, validation, format |
| Server # {index} is missing an identifier. | validation | error | mcp, form-validation, i18n, configuration |
| Identifier "{name}" is used more than once — names need to b | validation | error | mcp, form-validation, i18n, duplicate, configuration |
| errors.empty-command | validation | error | mcp, form-validation, i18n, configuration |
| prompt is required for image_journal.create | validation | error | tool, image-journal, validation, artistry, llm-tool-call |
| Failed to generate image: ${artistryResult.error || 'No outp | exception | error | artistry, image-journal, upstream, tool, wrapper |
| Geocoding request failed: ${res.status} | http | error | weather, network, geocoding, upstream, rate-limit |
| City not found: "${city}" | exception | error | weather, geocoding, validation, not-found, user-input |
| Weather request failed: ${res.status} | http | error | weather, network, upstream, rate-limit, forecast |
| Invalid JSON for componentProps: ${(error as Error).message} | exception | error | widgets, json, parsing, validation, llm-tool-call |
| componentName is required to spawn a widget. | validation | error | widget, validation, electron, stage-tamagotchi, ipc |
| id is required to update a widget. | validation | error | widget, validation, electron, stage-tamagotchi, ipc |
| id is required to remove a widget. | validation | error | widget, validation, electron, stage-tamagotchi, ipc |
| ${issue.path.join('.') || '<root>'}: ${issue.message} | validation | error | mcp, config, validation, zod, electron, shared |
| invalid JSON: ${stringifyError(error)} | validation | error | mcp, config, json, validation, shared |
| Auth request failed (${response.status}) | http | error | auth, network, http, better-auth, ui-server-auth |
| Auth request failed (${error.status ?? 'unknown'}) | exception | error | auth, profile, better-auth, session, ui-server-auth |
| updateUser failed | exception | error | auth, profile, better-auth, validation, ui-server-auth |
| changePassword failed | exception | error | auth, profile, better-auth, password, ui-server-auth |
| signOut failed | exception | warning | auth, profile, better-auth, session, ui-server-auth |
| Unexpected response | exception | error | auth, signin, oauth, better-auth, ui-server-auth |
| Unknown action: ${step.tool} | exception | error | minecraft, action-registry, llm, validation |
RESOURCE_MISSING Failed to collect any ${type} | error_code | error | minecraft, action, resource, llm-actions, pathfinding |
TARGET_NOT_FOUND No block found at ${pos} | error_code | error | minecraft, action, target, chunk, llm-actions |
UNKNOWN Block type mismatch at ${pos}: expected ${expected_block_type}, got ${block.name | error_code | error | minecraft, action, validation, block, llm-actions |
| Action queue full (${queueSize}/${MAX_QUEUED_CONTROL_ACTIONS | exception | warning | minecraft, brain, queue, scheduler, backpressure |
| botCall: method "${method}" is not allowed | exception | error | minecraft, sandbox, security, js-planner, botcall |
| botCall: bot.${method} is not a function | exception | error | minecraft, sandbox, botcall, js-planner, type-error |
| Your last reply was natural language, not JavaScript, so not | exception | warning | llm-planner, sandbox, syntax-firewall, natural-language |
| Expectation failed: Condition evaluated to false | exception | warning | llm-planner, sandbox, assertion, expect |
| Expectation failed: Expected movedDistance >= ${threshold}, | exception | warning | llm-planner, sandbox, assertion, movement, expectmoved |
| Expectation failed: expectNear(target) requires last action | exception | warning | llm-planner, sandbox, assertion, expectnear, telemetry |
| Expectation failed: expectNear() requires target argument or | exception | warning | llm-planner, sandbox, assertion, expectnear, telemetry |
| Expectation failed: Expected distance <= ${maxDist}, got ${d | exception | warning | llm-planner, sandbox, assertion, expectnear, proximity |
| use(toolName, params) requires a non-empty string toolName | exception | error | llm-planner, sandbox, validation, use-bridge |
| Unknown tool: ${tool} | exception | error | llm-planner, runtime, unknown-tool, action-map |
| skip() cannot be mixed with other tool calls in the same scr | exception | error | llm-planner, runtime, skip, action-ordering |
| Action limit exceeded: max ${this.maxActionsPerTurn} actions | exception | error | llm-planner, runtime, action-limit, budget |
| Invalid duration format: ${duration} | validation | error | temporal-detector, parsing, config, duration |
| Tool '${toolName}' not found | exception | warning | debug, tool-executor, unknown-tool, actions-list |
| Player not found, stopped following | exception | warning | minecraft, follow-plugin, player-entity, tick-handler |
| Please specify a player name! | exception | warning | minecraft, follow-plugin, command-validation, missing-argument |
| no player name specified | exception | warning | minecraft, pathfinder-plugin, command-validation, missing-argument |
| can't find player ${username}, maybe they're too far away? | exception | warning | minecraft, pathfinder-plugin, player-entity, render-distance |
RESOURCE_MISSING Don't have right tools to harvest ${block.name} | error_code | error | minecraft, collect-block, resource-missing, tool-tier, harvest |
CRAFTING_FAILED Failed to ensure crafting table | error_code | error | minecraft, ensure, crafting-failed, crafting-table, recipe |
RESOURCE_MISSING Could not gather wood | error_code | error | minecraft, ensure, resource-missing, gather-wood, planks |
ITEM_NOT_FOUND You do not have any ${itemName} to equip | exception | warning | minecraft, inventory, equip, item-not-found, validation |
TARGET_NOT_FOUND Could not find a chest nearby | exception | warning | minecraft, chest, target-not-found, world, navigation |
ITEM_NOT_FOUND Don't have any ${blockType} to place | exception | warning | minecraft, item-not-found, world-interaction, mineflayer |
TARGET_NOT_FOUND No block found at ${targetDest} | exception | warning | minecraft, target-not-found, chunk-loading, mineflayer |
PLACEMENT_FAILED ${blockType} already at ${targetBlock.position} | exception | info | minecraft, placement-failed, world-interaction, mineflayer, idempotency |
UNKNOWN Invalid position to break block at | exception | error | minecraft, validation, input-validation, mineflayer |
RESOURCE_MISSING Don't have right tools to break ${block.name} | exception | warning | minecraft, resource-missing, tools, survival, mineflayer |
| Invalid position to break block at. | exception | error | minecraft, validation, typescript, programming-error |
UNKNOWN Invalid item name: ${itemName} | error_code | error | minecraft, item-registry, validation, crafting |
CRAFTING_FAILED Failed to craft ${itemName} | error_code | error | minecraft, crafting, inventory, retry, error-wrapping |
NAVIGATION_FAILED Could not reach crafting table | error_code | error | minecraft, navigation, pathfinder, crafting, retry |
RESOURCE_MISSING Cannot craft ${itemName} - missing: ${missingList} | error_code | warning | minecraft, crafting, resources, recipe-planner |
ITEM_NOT_FOUND You do not have any ${name} to eat | error_code | error | minecraft, inventory, food, consume, actionerror |
TARGET_NOT_FOUND Could not find ${username} | error_code | error | minecraft, player, target, give, actionerror |
| Could not find any ${blockType} in ${range} blocks. | exception | warning | minecraft, navigation, block-search, exploration |
| Failed to reach ${blockType}: ${result.reason} — ${result.me | exception | error | minecraft, navigation, pathfinding, timeout |
| Unknown block type: ${name}${suggestion} | exception | error | minecraft, block, validation, mcdata, typo-suggestion |
| Tweet text is empty. Please provide text to post. | validation | error | twitter, validation, adapter, empty-input |
| Search query is empty. Please provide a query to search. | validation | error | twitter, validation, search, adapter, empty-input |
| Tweet ID is empty. Please provide a tweet ID to like. | validation | error | twitter, validation, like, adapter, empty-input |
| Tweet ID is empty. Please provide a tweet ID to retweet. | validation | error | twitter, validation, retweet, adapter, empty-input |
| Username is empty. Please provide a username to retrieve. | validation | error | twitter, validation, user, adapter, empty-input |
| Unknown X command: ${input}. Supported commands: "post tweet | validation | warning | twitter, parsing, command, adapter, user-input |
| Failed to search tweets: ${errorToMessage(error)} | exception | error | twitter, puppeteer, search, browser, selector-drift, catch-all |
| Like button not found | exception | error | twitter, puppeteer, selector, like, selector-drift |
| Failed to like tweet: ${errorToMessage(error)} | exception | error | twitter, puppeteer, like, browser, timeout, catch-all |
| Retweet button not found | exception | error | twitter, puppeteer, selector, retweet, selector-drift |
| Failed to retweet: ${errorToMessage(error)} | exception | error | browser-automation, twitter, dom-selector, timeout, session |
| Failed to post tweet: ${errorToMessage(error)} | exception | error | browser-automation, twitter, posting, rate-limit, dom-selector |
| Tweet element not found | exception | error | dom-selector, twitter, null-check, lifecycle |
| Failed to extract tweet data | exception | error | dom-selector, twitter, parser, structure-drift |
| Failed to get tweet details: ${errorToMessage(error)} | exception | error | browser-automation, twitter, wrapper, propagation |
| Not implemented | exception | error | stub, not-implemented, twitter, contract-gap |
| Failed to fetch profile for @${username} | exception | error | browser-automation, twitter, profile, dom-selector, session |
| Invalid semver: ${version} | validation | error | semver, validation, vscode, build, vsce |
| Prerelease sequence overflow for ${stage}: ${sequence} excee | validation | error | semver, overflow, vscode, build, versioning |
| Prerelease sequence must be non-negative: ${sequence} | validation | error | semver, validation, parser, build |
| Worklet loading failed: ${err} | exception | error | web-audio, audioworklet, cors, secure-context, browser |
| AudioContext not initialized | exception | error | web-audio, lifecycle, initialization, ordering |
| AudioContext or worklets not ready | exception | error | web-audio, audioworklet, lifecycle, initialization, resampling |
| No WebSocket constructor is available. Pass `wsConstructor` | exception | error | websocket, node, ssr, runtime, constructor |
| cap-vite [vite args...] -- <ios|android> [cap run args...] | validation | error | cli, argv, capacitor, validation, usage |
| Missing value for `${optionName}`. | validation | error | cli, argv, validation, vite, config |
| The first `cap run` argument must be `ios` or `android`. | validation | error | capacitor, argument-validation, cli |
| Expected `cap run --list --json` to return a JSON array. | exception | error | capacitor, cli, json-parsing, subprocess |
| No ${platform} devices or simulators found. Connect a device | exception | error | capacitor, device-discovery, simulator, emulator |
| Vite did not expose a reachable dev server URL. | exception | error | vite, dev-server, capacitor, lifecycle |
| The first `cap run` argument must be `ios` or `android`. | validation | error | capacitor, vite-plugin, environment, argument-validation |
| CAP_VITE_CAP_ARGS_JSON must be a JSON string array. | validation | error | capacitor, environment, json-parsing, vite-plugin |
| Invalid Character Card V3. | validation | error | character-card, valibot, schema-validation, json-parsing |
| mutexAcquireTimeout must be a positive finite number | validation | error | electron, screen-capture, config-validation, mutex |
| initScreenCaptureForMain must be called before calling initS | exception | error | electron, screen-capture, lifecycle, initialization-order |
| timeout must be a positive finite number | validation | error | electron, screen-capture, ipc, validation |
| Source with id ${request.sourceId} not found. | exception | error | electron, screen-capture, desktop-capturer, stale-reference |
| checkMacOSScreenCapturePermission is only available on macOS | exception | error | electron, screen-capture, platform, macos |
| requestMacOSScreenCapturePermission is only available on mac | exception | error | electron, screen-capture, platform, macos |
| Electron ipcRenderer is not available. Pass it explicitly to | exception | error | electron, eventa, ipc, preload, vue |
| MediaPipe backend not initialized (call init() first) | exception | error | mediapipe, mocap, lifecycle, initialization-order |
| Failed to download MediaPipe vision task asset for ${key} af | exception | error | mediapipe, build, network, assets, retry |
| Failed to ensure MediaPipe vision task asset for ${key}: mis | exception | error | mediapipe, build, assets, filesystem, download-integrity |
| Failed to ensure MediaPipe WASM assets: ${wasmOutputDir} is | exception | error | mediapipe, build, wasm, assets, dependency-resolution |
| gameletKit requires a host binding runtime. | exception | error | plugin-sdk, tamagotchi, gamelet, runtime, host-bindings |
| gameletKit requires a host gamelet orchestration runtime. | exception | error | runtime, gamelet, host-configuration, missing-dependency |
| Tool input schema must be a JSON Schema object or a Standard | exception | error | validation, json-schema, standard-schema, tool-registration, typescript |
| toolKit requires a host tool registry runtime. | exception | error | runtime, tool-registration, host-configuration, missing-dependency |
| Tamagotchi extension tool not found: ${key} | exception | error | registry, tool-invocation, not-found, lifecycle |
| Extension entrypoint id `${extension.id}` must match manifes | exception | error | manifest, identity, contract-violation, extension-lifecycle |
| Extension module `${input.id}` is already registered for ses | exception | error | extension-lifecycle, module-registration, duplicate, session |
| Permission denied: ${details.area}.${details.action} "${deta | exception | error | permissions, security, authorization, binding |
| Unknown extension session: ${sessionId} | exception | error | session, lifecycle, not-found, binding |
| Module `${moduleId}` was not found. | exception | error | binding, module, not-found, lifecycle |
| Kit `${kitId}` is not registered. | exception | error | kit, registry, not-found, binding, host-configuration |
| Kit `${kitId}` is not available for runtime `${runtime}`. | exception | error | kit, runtime, compatibility, binding |
| Unable to reload missing extension session: ${sessionId} | exception | error | session, lifecycle, reload, not-found |
| WebSocket transport is not implemented for node runtime yet. | exception | error | transport, node, not-implemented, websocket |
| Node worker transport is not implemented yet. | exception | error | transport, node, not-implemented, worker-threads |
| Electron transport is not implemented yet. | exception | error | transport, node, electron, not-implemented, runtime-mismatch |
| Web worker transport is not available in node runtime. | exception | error | transport, node, web-worker, environment-mismatch |
| Unknown plugin transport kind. | exception | error | transport, node, invalid-input, default-branch |
| Failed to resolve extension module. The entrypoint must expo | exception | error | loader, entrypoint, extension, module-resolution, defineextension |
| Extension entrypoint is required for runtime `${runtime}`. D | exception | error | manifest, entrypoint, loader, runtime, configuration |
| Module `${moduleId}` was not found. | exception | error | plugin-sdk, bindings, lifecycle, state-machine |
| Cannot declare permissions for unknown plugin "${extensionId | exception | error | plugin-sdk, permissions, lifecycle, authorization |
| Cannot grant permissions to unknown plugin "${extensionId}". | exception | error | plugin-sdk, permissions, lifecycle, authorization |
| WebSocket transport is not implemented for web runtime yet. | exception | info | plugin-sdk, web-runtime, transport, not-implemented |
| Web worker transport is not implemented yet. | exception | info | plugin-sdk, web-runtime, transport, web-worker, not-implemented |
| Node worker transport is not available in web runtime. | exception | info | plugin-sdk, web-runtime, transport, environment-mismatch |
| Electron transport is not available in web runtime. | exception | info | plugin-sdk, web-runtime, transport, electron, environment-mismatch |
| Unknown plugin transport kind. | exception | error | plugin-sdk, web-runtime, transport, exhaustive-switch, type-safety |
| Unsupported capture format "${requestedFormat}". Expected "p | validation | error | capture-script, cli, validation, image-format |
| Unsupported route path "${routePath}". Route paths must star | validation | error | capture-script, cli, validation, routing |
| Missing value for --output-dir. | validation | error | capture-script, cli, validation, arguments |
| Missing value for --settle-ms. | validation | error | capture-script, cli, validation, arguments |
| Invalid WebSocket event format. | validation | error | server-runtime, websocket, codec, validation, superjson |
| Client is not connected, current status: ${this.status} | exception | error | server-sdk, websocket-client, transport, connection-state |
| Invalid AIRI websocket message. | validation | error | server-sdk, websocket, codec, validation, superjson |
| No audio track available in the stream | exception | error | beat-sync, web, media-capture, getdisplaymedia, user-action |
| No screen source available | exception | error | beat-sync, electron, desktop-capturer, permissions, media-capture |
| Beat Sync is not available in Stage Pocket | exception | warning | beat-sync, stage-pocket, capacitor, platform-support, feature-unavailable |
| Invalid accelerator: unknown key "${token}" | validation | error | global-shortcut, accelerator, parsing, validation, electron |
| Invalid accelerator: empty string | validation | error | input-validation, global-shortcut, accelerator |
| Invalid accelerator "${input}": empty token | validation | error | input-validation, global-shortcut, accelerator |
| Invalid accelerator "${input}": duplicate modifier "${modifi | validation | error | input-validation, global-shortcut, accelerator |
| Invalid accelerator "${input}": multiple non-modifier keys ( | validation | error | input-validation, global-shortcut, accelerator |
| Invalid accelerator "${input}": no key token | validation | error | input-validation, global-shortcut, accelerator |
| Invalid VRAM override: ${bytes} (expected null or non-negati | validation | error | input-validation, webgpu, vram, config |
| Empty settings file: ${url} | validation | error | live2d, model-loading, archive, input-validation |
| Unknown settings JSON | validation | error | live2d, model-loading, schema, runtime-detection |
| Expected exactly one moc file, got ${mocFiles.length} ${file | validation | error | live2d, model-loading, archive, input-validation |
| Textures not found | validation | error | live2d, model-loading, archive, textures |
| Cannot find file: ${path} | validation | error | live2d, model-loading, archive, path-resolution |
| Settings file not found | validation | error | live2d, model-loading, file-input, input-validation |
| Failed to fetch MMD model: ${response.status} ${response.sta | exception | error | mmd, model-loading, network, fetch, cors |
| MMD ZIP must contain a .pmx or .pmd model file | validation | error | mmd, model-loading, archive, input-validation |
| Spine ZIP must contain a .skel or .json skeleton file paired | validation | error | spine, model-loading, archive, input-validation |
| Spine ZIP must contain a .atlas (or .atlas.txt) file | validation | error | spine, model-loading, archive, input-validation |
| Spine ZIP must contain at least one skeleton+atlas pair | validation | error | spine, model-loading, archive, input-validation |
| inspection.errors.join(' ') | validation | error | tachie, model-loading, archive, image-decode |
| No audio tracks found in stream | exception | error | audio, mediastream, webrtc, permissions |
| No microphone stream available for voice input | exception | error | audio, voice-input, vad, mediastream, permissions |
| Invalid chat session export format | validation | error | validation, data-import, chat-sessions, type-guard |
| listAccounts failed | exception | error | network, better-auth, auth, linked-accounts, api-error |
| unlinkAccount failed | exception | error | network, better-auth, auth, linked-accounts, api-error |
| link failed | exception | error | network, better-auth, oauth, openid, auth, linked-accounts |
| Vision provider/model not configured | validation | error | configuration, vision, precondition, state, validation |
| OIDC state mismatch — possible CSRF attack | exception | critical | security, oidc, oauth, csrf, auth, state-mismatch |
| Token exchange failed: ${response.status} ${error} | http | error | network, oidc, oauth, auth, token-exchange, pkce |
| Token refresh failed: ${response.status} | http | error | network, oidc, oauth, auth, token-refresh |
| HTTP ${res.status}: ${await readErrorDetail(res)} | http | error | network, rest, chat-sync, cloud-mapper, api-error |
| Kokoro worker did not return voice metadata | exception | error | kokoro, tts, worker, web-worker, model-load, inference |
| [${errorCode}] Unexpected output action: ${output.action} | exception | error | kokoro, tts, worker, web-worker, inference, protocol-mismatch |
| Aliyun NLS credentials are incomplete. | validation | error | configuration, aliyun, nls, credentials, validation, precondition |
| Failed to create token: ${JSON.stringify(response) || 'Unkno | exception | error | network, aliyun, nls, credentials, token, api-error |
| Web Speech API is not available in this environment. It requ | validation | error | browser-support, web-speech-api, environment, precondition, transcription |
| Missing input text for Gemini TTS | validation | error | validation, gemini, tts, precondition, request-body |
| Missing model for Gemini TTS | validation | error | validation, gemini, tts, precondition, request-body, configuration |
| Gemini TTS request failed: ${response.status} ${await respon | http | error | network, gemini, tts, api-error, google-api |
| Gemini TTS response missing audio data | exception | error | gemini, tts, safety-filter, response-parsing, api-error |
| Failed to fetch voices: ${response.statusText} | http | error | network, indextts, tts, vllm, configuration, api-error |
| OpenRouter audio request failed: ${response.status} ${await | exception | error | network, http, tts, openrouter, api-key, streaming |
| OpenRouter audio response has no body | exception | error | network, streaming, tts, openrouter, fetch, transport |
| Audio stream or file is required for streaming transcription | exception | error | validation, typescript, transcription, streaming, programmer-error |
| Streaming transcription request failed with status ${respons | exception | error | network, http, transcription, streaming, api-key, auth |
| Streaming transcription response is missing a readable body. | exception | error | network, streaming, transcription, fetch, transport |
| streaming-tts: not authenticated | exception | error | auth, tts, streaming, websocket, validation |
| Failed to fetch characters | exception | error | network, http, characters, api, auth |
| Failed to fetch character | exception | error | network, http, characters, api, auth, not-found |
| Failed to create character | exception | error | network, http, characters, api, validation, auth |
| Failed to update character | exception | error | network, http, characters, api, validation, auth |
| Failed to remove character | exception | error | network, http, characters, api, auth, not-found |
| Failed to like character | exception | error | network, http, characters, api, auth |
| Failed to bookmark character | exception | error | network, http, characters, api, auth |
| Provider definition with id "${definitionId}" not found. | exception | error | validation, config, providers, registry, migration |
| Failed to fetch providers | exception | error | network, http, providers, api, auth |
| Failed to add provider | exception | error | network, http, providers, api, validation, auth |
| Failed to remove provider | exception | error | network, http, providers, api, auth, not-found |
| Failed to update provider config | exception | error | network, http, providers, api, validation, auth |
| No active chat provider or model configured | exception | error | validation, state, chat, providers, config, ui |
| Failed to resolve chat provider "${providerId}" | exception | error | validation, state, chat, providers, config |
| web search failed: tavily ${response.status}${detail ? `: ${ | exception | error | network, http, tavily, web-search, api-key, provider |
| web search failed: tavily returned a non-JSON response | exception | error | network, proxy, tavily, web-search, parsing, response-shape |
| `send` doesn't work without stdin input, Claude Code hooks e | exception | error | cli, stdin, claude-code, hooks, configuration, plugin |
| `send` received empty stdin input, Claude Code hooks events | exception | error | cli, stdin, claude-code, hooks, validation, plugin |
| Failed to create Aliyun NLS token: ${response.Message || 'un | exception | critical | aliyun, nls, credentials, signature, cloud-provider, region, audio-transcription |
| Edge group is missing Mix or Map Range.001. | exception | error | blender, compositor, node-graph, export-script, godot, reference-stages, asset |