ErrLookup › xai-org/grok-build
xai-org/grok-build
SpaceXAI's coding agent harness and TUI. Fullscreen, mouse interactive, extensible. · Rust · 2,425 source files
Analyzed at bc7f02eddd on 2026-08-31. 586 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| no target specified | exception | error | cli, missing-argument, configuration |
| send failed: {body} | exception | error | http, network, cli |
| screen query failed: {body} | exception | error | http, network, cli |
| resize failed: {body} | exception | error | http, network, cli |
| wait failed: {body} | exception | error | http, network, cli, timeout |
| stop failed: {body} | exception | warning | http, network, cli, cleanup |
| session '{session_name}' is already running on port {} (use | exception | error | cli, port-conflict, session |
| session '{name}' not found | exception | error | cli, registry, not-found |
| unknown key notation: <{notation}> | exception | error | parsing, input, keys |
| overlay mount delegation not supported by this delegate | exception | error | filesystem, worktree, unsupported-operation |
| overlay unmount delegation not supported by this delegate | exception | error | filesystem, worktree, unimplemented, mount-namespace |
| invalid worktree id from dest: {worktree_id} | exception | error | path-traversal, validation, worktree, nfs |
| cancelled during ignored-only copy | exception | warning | cancellation, async, copy, partial-state |
| failed to create BTRFS snapshot from {} to {}: {} | exception | error | btrfs, filesystem, snapshot, external-command |
| refusing to delete pre-existing snapshot {}: outside grok-ma | exception | error | btrfs, safety-guard, filesystem, path-conflict |
| refusing to delete pre-existing snapshot {}: its metadata ta | exception | error | btrfs, ownership, safety-guard, session-conflict |
| failed to delete BTRFS snapshot at {}: {} | exception | error | btrfs, filesystem, delete, external-command |
| git reset --hard {} failed: {} | exception | error | git, reset, worktree, external-command |
| git clean {} failed: {} | exception | error | git, clean, worktree, external-command |
| git checkout {} failed: {} | exception | error | git, checkout, worktree, external-command |
| git {shown} failed in {}: {} | exception | error | git, process, subprocess-failed, rust |
| no .git file or directory found at {} | exception | error | git, filesystem, path-validation, rust |
| git worktree add failed: {} | exception | error | git, worktree, subprocess-failed, rust |
| not available in this build | exception | error | unsupported-platform, stub, compile-time-gating, rust |
| grove daemon unreachable | exception | error | network, ipc, daemon-unreachable, rust |
| unix socket path too long: {} | exception | error | unix-socket, path-length, linux, ipc |
| pin delete requires grove | exception | error | feature-gate, pin, gc, nfs |
| invalid worktree id {:?} | exception | error | validation, worktree-id, nfs, input-validation |
| mount table inconclusive for {}; refusing remove | exception | error | mount, safety-guard, nfs, remove |
| {} is a live grove mount without a backing marker; refusing | exception | critical | safety-guard, mount, rm-rf, marker |
| daemon RemoveWorktree failed: {e} | exception | error | daemon, rpc, nfs, remove |
| {} is still a mountpoint without a grove marker; refusing um | exception | error | safety-guard, mount, marker, fallback |
| unmount of {} could not be verified (still mounted or mount | exception | warning | umount, ebusy, safety-guard, mount |
| unmounted dest {} has grove metadata without a worktree id; | exception | warning | metadata, pin, nfs, data-integrity |
| unmount {}: {err} | exception | error | linux, filesystem, mount, permissions |
| git status failed: {} | exception | error | git, subprocess, filesystem |
| preserve on a projected Grove source is not supported | exception | error | worktree, nfs, unsupported-operation, grove |
| linked Grove source: CreateWorktree declined; refusing copy | exception | error | worktree, grove, fallback-refused |
| cancelled after git worktree add | exception | warning | cancellation, worktree, async |
| cancelled after parallel copy | exception | warning | cancellation, worktree, copy, async |
| git worktree add failed: {} | exception | error | git, worktree, subprocess |
| Invalid GCS URL scheme: expected 'gs', got '{}' | validation | error | gcs, configuration, url, storage |
| {} | exception | error | cli, startup, configuration-conflict |
| {err} | exception | error | cli, startup, flag-conflict |
| {} (session id: {session_id}) | exception | error | cli, session, resume, refusal |
| {LOCAL_WORKSPACE_REQUIRES_CHAT} | exception | error | cli, local-workspace, env, configuration |
| invalid {GROK_CHAT_LOCAL_WORKSPACE_MODE_ENV}={other:?}; expe | validation | error | env, validation, local-workspace |
| {LOCAL_WORKSPACE_ATTACH_NEEDS_SERVER_ID} | exception | error | local-workspace, missing-argument, env |
| local workspace cwd must exist and be canonicalizable: {}: { | validation | error | filesystem, path-validation, local-workspace |
| local workspace cwd must be an existing directory: {} | validation | error | filesystem, path-validation, local-workspace |
| {LOCAL_WORKSPACE_HOME_DENIED} | exception | error | filesystem, safety, local-workspace, path-validation |
| {LOCAL_WORKSPACE_ACK_REQUIRED} | exception | error | local-workspace, ack, non-interactive, human-in-the-loop |
| local workspace cancelled | exception | warning | cli, local-workspace, user-cancellation, stdin-prompt |
| Error: --session-id must be a valid UUID (got '{session_id}' | validation | error | cli, uuid, validation, session-id |
| Error: Session ID {session_id} is already in use. | validation | error | cli, session-conflict, persistence, duplicate-id |
| {CHAT_MODE_FORK_CONFLICT} | exception | error | cli, chat-mode, fork, conflicting-flags, validation |
| Session does not exist: {} | exception | error | session-restore, not-found, cli |
| Session does not exist | exception | error | session-restore, not-found, cli |
| Session does not exist locally (session registry is disabled | exception | error | config, session-registry, cli |
| {msg} | exception | error | session-restore, network, propagated-error |
| Multiple sessions match title {:?}:\n{listing}\nResume by se | exception | error | session-resolve, ambiguity, cli |
| Doctor fixes require interactive input and output. | exception | error | doctor, interactive-tty, cli |
| Cannot apply this fix without confirmation. Run it in an int | exception | error | doctor, confirmation, non-interactive, cli |
| The change was applied, but Doctor still reports `{}`. | exception | error | doctor, verification, config, cli |
| The change was applied, but Doctor could not verify `{}` in | exception | error | doctor, verification, persistence, config |
| --header can only be used with HTTP or SSE servers. | validation | error | cli, mcp, validation, arguments |
| Invalid command '{command}': it looks like an environment va | validation | error | cli, mcp, environment-variables, arguments |
| A URL is required for {label} servers. Usage: grok mcp add - | validation | error | cli, mcp, validation, url |
| Invalid URL '{url}'. Server URLs must start with http:// or | validation | error | cli, mcp, url, validation |
| Unexpected arguments after the URL: '{args}'. HTTP and SSE s | validation | error | cli, mcp, arguments, validation |
| --env can only be used with stdio servers. | validation | error | cli, mcp, environment-variables, transport |
| Invalid name '{name}'. Names can only contain letters, numbe | validation | error | cli, mcp, naming, validation |
| Invalid environment variable format: '{pair}'. Environment v | validation | error | cli, mcp, environment-variables, parsing |
| Invalid header format: '{header}'. Expected format: 'Name: v | validation | error | cli, mcp, http-headers, parsing |
| Invalid header: '{header}'. Header name cannot be empty. | validation | error | cli, mcp, http-headers, validation |
| Server name cannot be empty. | validation | error | cli, validation, empty-argument, mcp |
| {e} | exception | error | cli, plugin-install, git, error-propagation |
| Plugin "{name}" belongs to repo "{repo_key}" which also cont | exception | warning | cli, plugin-uninstall, safety-gate, confirmation-required |
| Plugin "{name}" not found. Run `grok plugin list` to see ins | exception | error | cli, plugin-enable, not-found, registry |
| Not a directory: {path} | validation | error | cli, plugin-validate, path-validation, filesystem |
| Failed to load manifest: {e} | exception | error | manifest, json, plugin, cli |
| No plugin.json found in {path}. | exception | error | manifest, plugin, cli, missing-file |
| Working tree is dirty. Commit changes first, or use --force. | exception | error | git, dirty-worktree, plugin, cli |
| Failed to create tag: {stderr} | exception | error | git, tag, plugin, cli |
| Failed to push tag: {stderr} | exception | error | git, push, network, authentication |
| URL cannot be empty. | validation | error | cli, argument-validation, marketplace |
| Local marketplace path not found (or is not a directory): {} | validation | error | path, marketplace, cli, argument-validation |
| Marketplace source blocked: {} | validation | error | permissions, policy, marketplace, allowlist, security |
| Marketplace source already configured: {identity} | validation | warning | cli, duplicate-config, marketplace |
| Provide the source name, git URL, or local path to remove. | validation | error | cli, missing-argument, marketplace |
| Marketplace source "{filter}" not found. | validation | error | cli, not-found, marketplace |
| Session sharing is temporarily disabled | exception | warning | cli, feature-disabled, sharing |
| No upload credentials. Run `grok login` or set a deployment | exception | error | auth, cli, upload |
| No trace upload bucket configured. Set `GROK_TELEMETRY_GCS_B | validation | error | configuration, env-var, upload |
| ACP error: {err} | exception | error | acp, rpc, worktree |
| worktree not found: {id_or_path} | exception | error | cli, not-found, worktree |
| deny glob {glob:?} uses unsupported metacharacter '{c}' (bra | validation | error | glob, sandbox, configuration |
| deny glob {glob:?}: empty path segment (a doubled '//' or tr | validation | error | glob, sandbox, configuration |
| Profile '{name}' extends '{base_name}', but 'off'/'none' is | validation | error | config, profile, validation |
| Profile '{name}' extends '{base_name}', but custom profiles | validation | error | config, profile, validation |
| no clipboard backend available | exception | error | clipboard, environment, linux |
| {label} exited with {}: {} | exception | error | clipboard, process, macos |
| pbcopy exited with status {status} | exception | error | clipboard, macos, process |
| osascript failed: {stderr} | exception | error | clipboard, macos, osascript |
| arboard leg disabled (GROK_CLIPBOARD_NO_DATA_CONTROL) | exception | warning | clipboard, wayland, linux, env-var |
| {bin} exited with status {status} | exception | error | clipboard, linux, process |
| no CLI tool supports image clipboard writes | exception | error | clipboard, image, linux |
| image clipboard not supported on this platform | exception | error | clipboard, platform-support, linux-only, compile-time-cfg |
| RGBA buffer too short: expected at least {} bytes for {}x{}, | validation | error | image, png, buffer-size, validation |
| HTTP {} | http | error | http, network, changelog, request-failed |
| Headless mode requires a grok.com session. Run `grok login` | exception | error | authentication, headless, session, cli |
| Proxy CONNECT failed: {} | http | error | proxy, connect-tunnel, network, https |
| Proxy sent {} unexpected byte(s) after CONNECT response head | exception | error | proxy, connect-tunnel, tls, protocol-violation |
| Connection cancelled | exception | info | websocket, cancellation, async, tokio, relay |
| WebSocket connection timed out after {} seconds | exception | error | websocket, timeout, network, relay, connectivity |
| GCS download failed: {} | http | error | gcs, http, network, download |
| GCS download stalled: no data received for {chunk_timeout:?} | exception | error | gcs, timeout, network, streaming |
| command timed out after {}s | exception | error | timeout, subprocess, auth, command |
| command wrote more than {PROVIDER_STDOUT_CAP_BYTES} bytes to | exception | error | subprocess, auth, stdout, limit |
| {e} (stderr: {}) | exception | error | auth, token, parsing, subprocess |
| devbox login is not available in this build (compiled withou | exception | error | auth, feature-flag, build, devbox |
NotEnabled Device-code login is not available for this deployment. Try `grok login` or set | error_code | warning | auth, device-code, http-404, configuration |
| Device code request failed (HTTP {status}): {body} | http | error | auth, device-code, http, network |
| Server returned invalid user_code format (expected [A-Z0-9-] | validation | error | oauth, device-flow, input-validation |
| Device code expired. Run `grok login --device-auth` again. | exception | error | oauth, device-flow, timeout |
| Authorization denied. The user rejected the request. | exception | error | oauth, device-flow, user-rejected |
| Token exchange error: {detail} | exception | error | oauth, device-flow, token-exchange |
| Server returned invalid verification URI | validation | error | oauth, device-flow, url-validation |
| Server returned unsupported verification URI scheme | validation | error | oauth, device-flow, url-validation, security |
| No OAuth2 configuration available. Run `grok login` to authe | exception | error | oauth, configuration, authentication |
| --devbox mints an xAI credential, which this build cannot us | exception | error | cli, authentication, flag-misuse |
| Sign-in is not available for this deployment. Set XAI_API_KE | exception | error | oauth, device-flow, configuration |
| unknown entry kind: {kind} | validation | error | |
| {operation} failed: {status} - {body} | http | error | |
| session not found: {session_id} | http | error | |
| cannot repair history while a turn is in flight; stop the tu | error_code | error | |
| history repaired in memory but the persistence flush failed | exception | error | |
| not a file: {} | validation | error | |
| Remote session restore is not available in this build | exception | error | |
| Session {} session-state archive was unavailable -- conversa | exception | error | |
| Repository root '{}' does not exist. Ensure the repo is clon | validation | error | |
| model name too long ({} > {} bytes) | validation | error | |
| refusing to overwrite unreadable MCP preferences at {} | exception | error | |
| fork_secondary_model name too long ({} > {} bytes) | validation | error | |
| byte budget exceeded: {}/{} bytes in {} | exception | error | |
| byte budget exceeded: {new_total}/{MAX_TOTAL_BYTES} bytes in | exception | error | |
| grok update failed with {} | exception | error | |
| Failed to exec: {} | exception | error | |
| Unsupported OS | exception | error | |
| Unsupported architecture | exception | error | |
| Download failed: HTTP {} | http | error | network, http, download, updater |
| decoded artifact exceeds the {MAX_DECODED_BYTES}-byte cap | exception | error | size-limit, decompression, validation, updater |
| gh release download failed for {} tag {} from {}: {} | exception | error | subprocess, github-cli, download, authentication |
| npm install failed. Please try again. | exception | error | subprocess, npm, install, updater |
| {e} | validation | error | version-policy, pinned-version, cli |
| The required minimum version ({target}) is newer than the la | exception | error | version-policy, release-channel, deployment-config |
| Unsupported release channel '{}' (current={}, target={}). Su | validation | error | release-channel, config, semver |
| Failed to parse versions (current={}, target={}) | exception | error | semver, parsing, version-detection |
| npm view @{} failed: {} | exception | error | npm, network, version-lookup |
| npm view @{} returned unexpected JSON | exception | error | |
| gh release list failed: {} | exception | error | |
| No releases found in {} | exception | error | |
| invalid semver in {} channel pointer: '{}' | validation | error | |
| No auth credentials found at {}. Run `grok login` first. | exception | error | |
| auth entry '{scope_key}' not found while persisting refreshe | exception | error | auth, oauth, token-refresh, json, concurrency |
| git fetch origin {oid} skipped: restore fetch budget exhaust | exception | error | git, fetch, timeout, budget, restore |
| unsupported checkout target (need a full commit oid or a sim | validation | error | git, fetch, validation, refspec, input-validation |
| refusing unsafe fetch refspec | validation | error | git, security, validation, refspec, input-validation |
| process scope already closed; fetch killed{} | exception | warning | git, shutdown, process-management, race-condition, lifecycle |
| git fetch --no-tags origin {spec} failed ({status}): {stderr | exception | error | git, fetch, network, subprocess |
| git fetch --no-tags origin {spec} timed out after {}s{}{} | exception | error | git, fetch, timeout |
| not a git repository: {} | exception | error | git, repository, path, validation |
| working tree has uncommitted changes; commit or stash before | exception | error | git, checkout, dirty-worktree, state |
| merge of base ref '{base}' failed: {merge_out} | exception | error | git, merge, subprocess |
| ls-remote origin '{session_branch}' failed (exit {other}); n | exception | error | git, ls-remote, network, authentication |
| local '{target_branch}' has diverged from origin; resolve be | exception | error | git, merge, diverged, publish |
| merge of '{conv_branch}' into '{target_branch}' failed: {} | exception | error | git, merge, subprocess |
| not a git repository: {} | exception | error | git, repository, gate, validation |
| exactly one of worktreePath or idOrPath must be set, not bot | validation | error | validation, api-misuse, rust |
| worktree not found: {id} | validation | error | not-found, worktree, rust |
| either worktreePath or idOrPath must be set | validation | error | validation, missing-argument, rust |
| invalid size format, expected COLSxROWS (e.g. 120x40) | validation | error | cli, argument-parsing, validation |
| PTY write channel closed | exception | error | pty, channel-closed, rust, tokio |
| cannot determine btrfs mount point for source {} | exception | error | |
| cannot derive metadata path for {} | exception | error | |
| source .git must be a directory (not a linked worktree .git | validation | error | |
| parallel .git/ copy thread panicked | exception | error | |
| parallel .git/ copy panicked | exception | error | |
| invalid .git file format: {} | exception | error | git, worktree, file-format, discovery |
| bare repository has no working directory | exception | error | git, bare-repository, discovery |
| failed to discover git repo: {e} | exception | error | git, discovery, repository-not-found |
| failed to load git index: {e} | exception | error | git, index, corruption |
| e.error (daemon error message propagated via anyhow!) | exception | error | daemon, rpc, nfs, worktree |
| empty response (timeout or closed) | exception | error | |
| nfs worktree create still in progress (phase={phase}); not f | exception | error | |
| {msg}; not falling back to copy | exception | error | |
| .git/ copy thread panicked: {} | exception | error | |
| modified files scan thread panicked | exception | error | |
| deduplicated: identical gcs_path already in flight | exception | error | |
| Upload queue closed | exception | error | |
| reference snapshot did not match expected sha256; upload ski | exception | error | rust, integrity, sha256, upload-queue, stale-snapshot |
| expired | exception | error | rust, upload-queue, timeout, retry-policy, expired |
| upload parked: credentials rejected (HTTP 401); retrying in | exception | error | rust, auth, http-401, upload-queue, credentials |
| {} | exception | error | rust, aws-s3, batch-upload, network |
| Failed to parse upload response: {} | exception | error | rust, http, json-parsing, upload, reqwest |
| {} failed: {} | exception | error | rust, network, retry-exhausted, storage-client, timeout |
| Task panicked: {} | exception | error | rust, multipart-upload, panic, tokio, concurrency |
| Failed to parse part {} response: {} | exception | error | rust, multipart-upload, json-parsing, http, reqwest |
| bind {}: {e} | exception | error | unix-socket, bind, filesystem, permissions, diagnostics |
| bind 127.0.0.1:{port}: {e} | exception | error | network, bind, port-in-use, tcp, diagnostics |
| {} | exception | error | leader, ipc, discovery, cli |
| resolved leader target did not include a socket path | exception | error | leader, ipc, socket, configuration |
| Leader does not advertise capabilities (legacy version) | exception | error | version-mismatch, capabilities, leader, compatibility |
| no running leader for this environment ({e}). Start a grok s | exception | error | leader, ipc, connection-refused, workspace, cli |
| Failed to create agent config: {e} | exception | error | configuration, toml, filesystem, cli |
| Failed to load config: {e} | exception | error | configuration, toml, cli, startup |
| failed to start or connect to leader: {e} | exception | error | |
| cannot determine current directory: {e} | exception | error | |
| Failed to load config: {} | exception | error | |
| Failed to create agent config: {} | exception | error | |
| no encoded bytes to persist | exception | error | |
| Failed to load config: {} | exception | error | |
| Failed to create agent config: {} | exception | error | |
| Failed to create agent config: {e} | exception | error | config, toml, startup, agent-runtime |
| No auth methods available | exception | error | auth, acp, login |
| agent runtime worker join: {e} | exception | error | tokio, runtime, spawn, panic |
| failed to start agent runtime: {e} | exception | error | tokio, runtime, resources, spawn |
| Failed to set working directory to {:?}: {} | exception | error | filesystem, cli, cwd, io |
| terminal writer stopped | exception | critical | async, terminal, channel-closed, tui |
| Failed to load config: {e} | exception | error | config, startup, io |
| local-workspace intent mutex poisoned; refuse attach (fail c | exception | error | concurrency, mutex-poisoned, local-workspace |
| No session found for current directory. Use 'grok' to start | exception | error | session, resume, not-found |
| Failed to get cwd: {e} | exception | error | filesystem, cwd, startup |
| {e:#}; {title_miss_hint} | exception | error | session, resume, remote, not-found |
| Failed to load config: {} | exception | error | config, session, resume, startup |
| Failed to create agent config: {} | exception | error | |
| Failed to authenticate for session restore: {} | exception | error | |
| failed to list local sessions while resolving --resume {arg: | exception | error | |
| Not signed in. Run `grok login` to authenticate (or `grok lo | exception | error | |
| serialize fork params: {e} | exception | error | |
| fork response missing newSessionId | exception | error | |
| fork succeeded as {child} but load failed: {e} | exception | error | |
| --effort/--reasoning-effort: no active model to apply effort | validation | error | |
| Couldn't set model '{name}': {e}. Run 'grok models' to see a | exception | error | |
| Couldn't apply reasoning effort: {e} | exception | error | |
| Failed to load config: {e} | exception | error | config, toml, rust, startup |
| Failed to create agent config: {e} | exception | error | config, schema, rust, deserialization |
| --permission-mode: invalid value: {e} | validation | error | cli, validation, serde, enum |
| max turns reached | exception | error | agent, limit, headless, loop |
| {msg} | exception | error | runtime, api, turn, rust |
| --json-schema: invalid JSON: {e} | validation | error | cli, json, validation, structured-output |
| --single: {e} | validation | error | cli, prompt, validation |
| --prompt-json: {e} | validation | error | cli, json, prompt, deserialization |
| Failed to read '{path}': {e} | exception | error | file-io, cli, prompt, rust |
| '{path}': {e} | exception | error | prompt, parsing, json, validation |
| Invalid JSON: {e} | validation | error | json, parsing, cli, serde |
| Invalid ACP content blocks: {e} | validation | error | json, schema, acp, serde |
| JSON object must have a "type" field (e.g., {"type": "acp", | validation | error | json, acp, cli, missing-field |
| JSON object must have a "content" field | validation | error | json, acp, missing-field, cli |
| Invalid ACP content blocks in "content": {e} | validation | error | json, schema, acp, serde |
| --agents: invalid JSON: {e} | validation | error | json, cli, arguments, serde |
| --agents: failed to parse '{name}': {e} | validation | error | json, schema, cli, agents |
| clear failed | exception | error | filesystem, memory, cli, permissions |
| Failed to enable plugin: {e} | exception | error | config, plugins, filesystem, permissions |
| Failed to disable plugin: {e} | exception | error | config, plugins, filesystem, permissions |
| Manifest validation failed: {e} | validation | error | manifest, validation, plugin |
| No `version` field in plugin.json. Set a version to use `gro | validation | error | manifest, versioning, plugin |
| {e} Not adding "{url}": it doesn't look like a reachable git | exception | error | git, network, marketplace |
| Failed to parse config.toml: {e} | exception | error | config, toml, parse-error |
| marketplace.sources is not an array of tables | exception | error | config, toml, type-mismatch |
| Trace upload failed for session {} | exception | error | upload, gcs, network, tracing |
| Upload timed out after {}s | exception | error | timeout, upload, network, gcs |
| local-workspace resolve returned no config after own-mode re | exception | error | workspace, invariant, welcome-view |
| local-workspace resolve returned no config after ack | exception | error | workspace, ack, welcome-view |
| failed to build request: {e} | exception | error | rust, anyhow, serde, serialization, acp |
| response parse error: {e} | exception | error | rust, serde, json, acp, protocol, deserialization |
| ACP response missing result field | exception | error | rust, acp, protocol, json-rpc, missing-field |
| failed to exec {program}: {err} | exception | error | rust, process-exec, unix, exec, path |
| failed to run {program}: {e} | exception | error | rust, process-spawn, windows, cross-platform |
| invalid deny glob {glob:?}: {e} | exception | error | rust, glob, validation, sandbox, config |
| hook write-deny ensure failed: {e} | exception | error | rust, sandbox, filesystem, hooks, permissions |
| hook JSON alias validation failed: {e} | exception | error | rust, sandbox, hooks, validation, config, unix |
| runtime-socket deny resolution failed: {error} | exception | error | rust, sandbox, network, sockets, profile |
| Custom sandbox profile '{name}' not found. Define it in ~/.g | exception | error | rust, sandbox, configuration, toml, profile |
| Profile '{name}' extends invalid base: {e} | exception | error | config, profiles, validation |
| failed to run {label}: {error} | exception | error | clipboard, macos, process-spawn |
| failed to read clipboard temp file: {e} | exception | error | clipboard, filesystem, temp-file |
| failed to spawn pbcopy: {e} | exception | error | clipboard, macos, pbcopy, process-spawn |
| failed to run osascript: {e} | exception | error | clipboard, macos, osascript, process-spawn |
| arboard unavailable | exception | error | clipboard, arboard, headless, linux |
| arboard read timed out | exception | error | clipboard, arboard, wayland, timeout |
| arboard read worker died | exception | error | clipboard, arboard, panic, worker-thread |
| failed to spawn {bin}: {e} | exception | error | clipboard, linux, process-spawn, cli-tools |
| failed to run {bin}: {e} | exception | error | clipboard, linux, process-spawn, cli-tools |
| Another leader already holds the lock at {} | exception | info | ipc, single-instance, leader-election, unix-socket |
| Timed out acquiring leader lock at {} | exception | error | ipc, leader-election, file-lock, timeout |
| Failed to acquire leader lock: {} | exception | error | ipc, leader-election, file-lock, filesystem |
| Timeout waiting for IPC socket to be created | exception | error | ipc, unix-socket, startup, timeout |
| Authentication cancelled | exception | info | authentication, cancellation, tokio, async |
| Failed to connect to proxy at {proxy_addr}: {e} | exception | error | network, proxy, tcp, connect |
| Invalid TLS server name '{server_name}': {e} | exception | error | tls, rustls, validation, proxy |
| TLS handshake through proxy failed: {e} | exception | error | tls, rustls, certificate, proxy, handshake |
| Invalid proxy port in '{url}' | validation | error | proxy, config, parsing |
| WebSocket URL has no host | exception | error | websocket, proxy, url |
| {op} failed: {} | exception | error | http, api, status-code |
| command failed to start: {e} | exception | error | process, spawn, command |
| process group setup failed: {e} | exception | error | process, unix, process-group |
| reading command stdout: {e} | exception | error | io, pipe, process |
| waiting on command: {e} | exception | error | process, async, tokio |
| Failed to save credentials: {e} | exception | error | auth, persistence, credentials |
| failed to start auth provider `{command}`: {e} | exception | error | auth, process-spawn, external-provider, cli |
| external auth provider `{command}` timed out after 300s | exception | error | auth, timeout, external-provider, process |
| external auth provider `{command}` IO error: {e} | exception | error | auth, process, io-error, external-provider |
| external auth provider `{command}`: {e} | exception | error | auth, external-provider, output-parsing, contract |
| failed to save external auth credentials: {e} | exception | error | auth, persistence, filesystem, credentials |
| Login failed. Please try again. | exception | error | auth, login, stderr-bridge, tokio |
| Failed to clear auth: {e} | exception | error | auth, logout, cli, persistence |
| produced non-UTF-8 output on stdout | validation | error | auth, encoding, utf-8, external-provider |
| produced JSON that is not a token payload: {e} | validation | error | auth, json, schema-validation, external-provider |
| refusing to write import marker: existing config at {} is no | exception | error | toml, config, parse-error |
| config root is not a table | exception | error | toml, config, schema |
| [claude_compat] is not a table | exception | error | toml, config, schema |
| refusing to import: existing config at {} is not valid TOML | exception | error | toml, config, parse-error |
| [permission] is not a table | exception | error | toml, config, schema |
| permission.{key} is not an array | exception | error | toml, config, schema |
| [mcp_servers] is not a table | exception | error | toml, config, schema, mcp |
| failed to serialize MCP server {name}: {e} | exception | error | toml, config, serialization, mcp |
| [paths] is not a table | exception | error | toml, config, schema |
| paths.{key} is not an array | exception | error | toml, config, type-mismatch |
| {}: root is not a JSON object | exception | error | json, config, schema |
| {}: hooks is not a JSON object | exception | error | json, config, schema |
| {}: hooks.{} is not a JSON array | exception | error | json, config, schema |
| models/list response missing result | exception | error | json-rpc, mcp, api-response |
| git serialize_changes is unavailable in this build | exception | error | feature-unavailable, build-flag, git |
| session not found | exception | error | session, lifecycle, acp |
| session not found | exception | error | session, plugins, acp |
| {e} | exception | error | session-search, pagination, opaque-error |
| Failed to save config: {e} | exception | error | |
| unknown session id: {} | exception | error | |
| Skill '{}' not found | validation | error | |
| spawn_blocking panicked: {e} | exception | error | |
| chat-state actor unavailable | exception | error | |
| Tool not available. Use search_tool to find available tools. | exception | error | |
| Session {} not found locally and session registry is not ava | exception | error | |
| session-state archive restore unavailable in this build | exception | error | rust, worktree, unimplemented-feature, session-restore |
| Failed to fork session into worktree: {e} | exception | error | rust, session-fork, worktree, error-wrapping |
| worktree creation task failed: {e} | exception | error | rust, worktree, git, filesystem |
| Session registry client is required for rehydration (auth ma | exception | error | rust, registry, auth, configuration |
| failed to set mcp preferences permissions: {e} | exception | error | rust, filesystem, permissions, config-save |
| config root is not a table | exception | error | rust, toml, config, malformed-config |
| disabled_mcp_tools is not a table | exception | error | rust, toml, config, schema-mismatch |
| failed to read {}: {e} | exception | error | rust, filesystem, io, toml |
| refusing to overwrite unparseable {}: {}; fix the syntax bef | exception | error | rust, toml, config, parse-error, data-protection |
| failed to write {}: {e} | exception | error | io, filesystem, toml, write-failure |
| refusing to rewrite unparseable {}: {e} | exception | error | toml, parse-error, config |
| mcp_servers is not a table | exception | error | toml, config, schema, shape-mismatch |
| failed to serialize MCP server config: {e} | exception | error | toml, serialization, mcp, config |
| refusing to overwrite unparseable {}: {}; save a backup and | exception | critical | toml, config, parse-error, data-loss-prevention |
| failed to open instrumentation log {:?}: {} | exception | error | io, file-not-found, telemetry, instrumentation |
| no timing events found in {:?} | exception | warning | telemetry, instrumentation, empty-data, validation |
| failed to create chrome trace {:?}: {} | exception | error | io, filesystem, permissions, telemetry |
| failed to write chrome trace: {} | exception | error | io, disk-full, serde-json, telemetry |
| Auto-update failed: {:#} {} | exception | critical | auto-update, installation, process |
| response missing Content-Length | exception | error | network, http, download, content-length |
| blocking pre-allocate task panicked: {e} | exception | error | tokio, panic, filesystem, download |
| blocking write task panicked: {e} | exception | error | tokio, io, panic, async |
| decode task panicked: {e} | exception | error | tokio, panic, decoding, async |
| no artifact at {base}/{object_name} | exception | error | network, gcs, download |
| no CLI base URLs to try | exception | error | configuration, update, gcs |
| invalid version format: '{}' | validation | error | validation, semver, version |
| destination has no filename: {} | exception | error | windows, filesystem, path, validation |
| cannot rename locked executable {}: {e} Close all running gr | exception | error | windows, filesystem, locked-file, update |
| npm view @{} returned empty version list | exception | error | npm, version, registry, network |
| no CLI base URLs configured | exception | error | configuration, version, gcs |
| GCS channel pointer fetch failed for {}: {:#} | exception | error | network, gcs, http, retry |
| GCS channel pointer fetch failed: HTTP {} for {}: {} | http | error | network, http, gcs, update-check |
| empty {} channel pointer at {} | exception | error | gcs, empty-response, update-check |
| GCS channel pointer body read failed for {}: {:#} | exception | error | network, io, gcs, update-check |
| Failed to spawn ripgrep: {} | exception | error | ripgrep, process-spawn, filesystem, missing-binary |
| Failed to capture ripgrep stdout | exception | error | ripgrep, process-spawn, io, internal-invariant |
| git object database semaphore closed | exception | error | semaphore, shutdown, git-odb, concurrency |
| timed out waiting {}s for git object database permit | exception | error | semaphore, timeout, git-odb, concurrency |
| no user grok home (set $GROK_HOME or $HOME) | exception | error | environment, config, auth, missing-env-var |
| failed to read {}: {e} | exception | error | auth, filesystem, permissions, io |
| failed to parse {}: {e} | exception | error | auth, json, serialization, config |
| no OIDC auth entry found in {}. Run `grok login` first. | exception | error | auth, oidc, config, rust |
| auth entry has no refresh_token — cannot refresh expired tok | exception | error | auth, oidc, missing-field, rust |
| auth entry has no oidc_issuer — cannot refresh expired token | exception | error | auth, oidc, missing-field, config, rust |
| auth entry has no oidc_client_id — cannot refresh expired to | exception | error | auth, oidc, missing-field, config, rust |
| failed to open {}: {e} | exception | error | filesystem, permissions, io, rust |
| failed to replace {}: {e} | exception | error | filesystem, io, atomic-write, rust |
| OIDC expires_in out of range: {secs} | exception | error | oidc, token-refresh, network, rust |
| OIDC endpoint rejected request ({status}): {body} | http | error | oidc, http, token-refresh, network, rust |
| git command failed | exception | error | git, subprocess, vcs, rust |
| jj command failed | exception | error | jujutsu, subprocess, vcs, rust |
| bare git repository: {} | exception | error | git, bare-repository, path |
| Invalid git repository: {} | exception | error | git, repository-corruption, worktree |
| path '{}' not found in commit: {} | exception | error | git, file-not-found, revision |
| failed to read file content for '{}': {} | exception | error | git, object-corruption, blob |
| path '{}' not found in staging area | exception | error | git, index, staging, file-not-found |
| cannot read working files from bare repository | exception | error | git, bare-repository, workdir |
| failed to read '{}': {} | exception | error | git, io, file-not-found, workdir |
| '{}' is not a valid revision: {} | exception | error | git, revision, invalid-ref |
| '{}' does not refer to a commit: {} | exception | error | git, revision, object-type |
| cannot read files from bare repository | exception | error | git, bare-repository, filesystem |
| path '{}' is not within git repository '{}' | exception | error | git, path-validation, filesystem |
| cannot get diffs from bare repository | exception | error | git, bare-repository, diff |
| targeted fetch task failed: {e} | exception | error | git, fetch, network, async |
| workspace is on '{current}', expected '{expected}' | validation | error | git, branch-state, precondition |
| merge --abort failed: {out} | exception | error | git, merge-conflict, state |
| a merge is already in progress; resolve it or call again wit | validation | error | git, merge-conflict, precondition |
| working tree is not clean; commit or discard changes before | validation | error | git, dirty-working-tree, precondition |
| fetch of base ref '{base}' failed: {fetch_out} | exception | error | git, fetch, network, remote |
| {what} must not be empty | validation | error | git, validation, input-validation |
| {what} '{value}' must not start with '-' | validation | critical | git, security, argument-injection, validation |
| {what} '{value}' contains whitespace or control characters | validation | error | git, validation, input-sanitization |
| {what} '{value}' must not contain '..' | validation | error | git, validation, input-sanitization |
| working tree is not clean; commit before merging to '{target | validation | error | git, working-tree, precondition |
| merge into '{target_branch}' succeeded but push failed ({sta | exception | error | git, push, network, remote |
| cannot stage content in bare repository | exception | error | git, bare-repository, configuration |
| git walk timed out after {}s | exception | error | git, timeout, performance |
| git discover task failed: {error} | exception | error | git, tokio, runtime, task-cancellation |
| Invalid source path: {} | exception | error | |
| Not a git repository or worktree | validation | error | |
| remove_worktree task failed: {} | exception | error | |
| rehydrate_subagent_worktree task failed: {e} | exception | error | |
| snapshot_subagent_worktree task failed: {e} | exception | error | |
| remove_subagent_worktree task failed: {e} | exception | error | |
| Source path is not a valid git repository or worktree: {} | validation | error | |
| Failed to resolve worktree path: {} | validation | error | |
| Worktree creation task failed: {} | exception | error | |
| Invalid git repository structure | validation | error | |
| jj workspace add failed: {e} | exception | error | vcs, jujutsu, cli, worktree |
| No turns remaining after filtering | exception | error | compaction, llm, input-validation |
| ACP message exceeds {} byte limit ({} bytes read) | exception | error | protocol, acp, io, limits |
| the probe's output did not drain within {DRAIN_GRACE:?} | exception | error | git, timeout, process, io |
| connect timed out | exception | error | network, ipc, unix-socket, timeout, nfs |
| OUT_OF_DISK_CONTEXT | exception | critical | disk-full, nfs, storage, worktree |
| upload queue closed | exception | error | upload, queue, shutdown, concurrency |
| worker dropped completion channel | exception | error | upload, queue, worker, channel, concurrency |
| Failed to snapshot {} into upload queue | exception | error | upload, filesystem, io, snapshot |
| Failed to hash snapshot {} | exception | error | upload, hashing, integrity, filesystem, io |
| could not reserve a unique {kind} artifact | exception | error | io, filesystem, collision, codegen |
| transport is closed | exception | error | mcp, transport, io, async |
| memory directory {:?} does not exist: {e} | exception | error | io, filesystem, memory, not-found |
| path {:?} is outside the memory directory {:?} | exception | warning | security, path-traversal, filesystem, io |
| no user grok home resolved; refusing to write a cwd-relative | exception | error | config, env, filesystem, pager |
| no home directory resolves; set GROK_COPY_FILE to enable the | exception | warning | clipboard, env, fallback, filesystem |
| terminal writer thread exited | exception | error | terminal, threading, io, render |
| {error} | exception | error | terminal, io, render, stderr |
-32601 {context} does not handle WaitForTerminalExit | error_code | info | acp, json-rpc, method-not-found, pager |
-32602 Invalid params: {e} | error_code | warning | acp, json-rpc, invalid-params, serde |
-32601 Method not found: {unknown} | error_code | error | acp, json-rpc, method-not-found, dispatch |
-32603 {action} timed out after {}s. It may still finish in the background; retrying ri | error_code | error | timeout, acp, rpc, tokio |
| terminal input reader did not park before suspend | exception | error | terminal, suspend, timeout, input |
| terminal writer did not drain before suspend | exception | error | terminal, suspend, flush, timeout |
| invalid editor command | exception | error | editor, terminal, config, io |
| headless: stdout write failed | exception | critical | headless, stdout, io, epipe |
-32603 serialize ext response: {e} | error_code | error | acp, serialization, json, headless |
-32601 Method not found: {other} | error_code | error | acp, headless, method-not-found, json-rpc |
NotFound no grok home | exception | error | io, filesystem, environment, not-found |
InvalidData invalid bwrap runtime-socket deny handoff: {error} | exception | error | sandbox, bubblewrap, environment, security |
InvalidInput endpoint has no parent directory | exception | error | io, filesystem, path-validation |
-32602 Cannot switch to model '{}': it requires agent '{}' but the active agent is '{}' | error_code | error | acp, json-rpc, model-switch, agent, invalid-request |
InvalidInput path has no parent | exception | error | io, filesystem, atomic-write, path-validation |
| OidcError::CallbackTimeout | exception | error | oidc, timeout, auth-flow |
| OidcError::CallbackChannelClosed | exception | error | oidc, channel-closed, auth-flow |
| OidcError::CallbackAuthFailed | exception | error | oidc, token-exchange, invalid-grant |
| OidcError::NotConfigured | exception | error | oidc, configuration, missing-config |
| OidcError::BindLoopback | exception | error | network, bind-failed, port-in-use, oidc |
| OidcError::SaveAuth | exception | error | persistence, filesystem, oidc |
| OidcError::ForceLoginNoPrincipalsAllowed | exception | error | oidc, config, fail-closed |
| OidcError::PinnedPrincipalMismatch | exception | error | oidc, authorization, principal-pinning |
| OidcError::DiscoveryHttp | http | error | oidc, http, discovery, network |
| OidcError::TokenExchangeHttp | http | error | oidc, oauth2, http, token-exchange |
| OidcError::TokenRefreshHttp | http | error | oidc, oauth2, http, token-refresh |
| OidcError::StateMismatch | exception | error | oidc, csrf, state-validation |
| OidcError::UnsupportedAlg | validation | error | oidc, jwt, algorithm, security |
| OidcError::AlgNotInDiscoverySupportedList | validation | error | oidc, jwt, discovery, algorithm |
| OidcError::IdTokenMissingKid | validation | error | oidc, jwt, jwks |
| OidcError::DiscoveryMissingJwksUri | validation | error | oidc, discovery, jwks |
| OidcError::JwkNotFound | validation | error | oidc, jwks, jwt-signature, auth |
| OidcError::IssuerMismatch | validation | error | oidc, jwt, issuer-validation, config |
AudienceMismatch OidcError::AudienceMismatch | error_code | error | oidc, jwt, audience-validation, oauth |
NonceMismatch OidcError::NonceMismatch | error_code | error | oidc, nonce, replay-protection, auth |
MissingIdToken OidcError::MissingIdToken | error_code | error | oidc, id-token, login-flow, auth |
IdTokenValidationFailed OidcError::IdTokenValidationFailed(e.to_string()) | error_code | error | oidc, jwt-validation, id-token, auth |
| serde_json parse error of auth store (wrapped as InvalidData | error_code | error | serialization, json, file-io, auth-store |
InternalError e.to_string() | exception | error | acp, internal-error, extension, session |
| invalid TOML: {e} | error_code | error | toml, config, marketplace, file-io |
| [marketplace] is not a table | error_code | error | toml, config, marketplace, schema |
| [[marketplace.sources]] is not an array of tables | error_code | error | |
| timed out waiting for {lock_path} after 1s | error_code | error | |
| Model is temporarily overloaded. Try again in a moment. | exception | error | |
RATE_LIMITED_ERROR_CODE (-32003) Rate limited | exception | error | |
RATE_LIMITED_ERROR_CODE (-32003) Rate limited | exception | error | |
| session persistence actor stopped before flush acknowledgeme | error_code | error | |
| session persistence actor unavailable; retry by generation | error_code | error | |
| session persistence actor unavailable for strip rewrite | error_code | error | |
| Compaction checkpoint file missing: {checkpoint_path}. Canno | error_code | error | io, filesystem, session-replay, compaction, not-found |
| Compaction checkpoint file corrupt: {checkpoint_path}. Canno | error_code | error | io, json, serialization, compaction, corrupt-data |
| Unsupported checkpoint schema version {schema_version}. Cann | error_code | error | versioning, schema, compaction, compatibility |
| session persistence actor stopped before durable append disp | error_code | error | tokio, mpsc, actor, shutdown, durable-write |
| session persistence actor stopped before durable append ackn | error_code | error | tokio, oneshot, actor, ack, durable-write, shutdown |
| session directory is unknown; cannot probe disk space | error_code | error | io, filesystem, disk-space, session, initialization |
| Writeback storage mode requires authentication. Run 'grok lo | error_code | error | auth, authentication, configuration, storage, permission-denied |
FS_OTHER An unexpected I/O error occurred. | error_code | error | io, filesystem, acp, unclassified, persistence |
| summary.json is empty (0 bytes): {} | validation | error | io, serialization, corrupt-file, atomic-write |
| <serde_json deserialization error for summary.json> | validation | error | io, serde, schema-mismatch, serialization |
| <serde_json serialization error for Summary> | validation | error | serialization, serde, io |
| target has no parent | validation | error | io, path, validation, atomic-write |
| destination already exists | validation | warning | io, windows, race-condition, file-exists |
| workflow source already registered: {run_id} | validation | error | duplicate-key, idempotency, workflow, io |
| workflow state has no registered resume source | validation | error | workflow, state-management, not-found, io |
| workflow persistence channel closed | exception | error | io, channel, shutdown-race, async |
| workflow persistence actor dropped acknowledgement | exception | error | io, broken-pipe, oneshot, ack |
| invalid workflow run id | validation | error | validation, invalid-input, path-safety |
| workflow artifact is not a regular file: {} | validation | error | io, security, symlink, invalid-data |
| workflow artifact exceeds {limit} bytes: {} | validation | error | io, invalid-data, size-limit, dos-protection |
| workflow artifact changed during open: {} | validation | error | io, race-condition, toctou, invalid-data |
| immutable workflow file already exists: {} | validation | error | io, already-exists, immutability, idempotency |
| workflow path has no parent | validation | error | io, invalid-input, path |
| workflow path is not UTF-8 | validation | error | io, invalid-input, utf-8, path |
| Could not find cgroupv2 entry in /proc/self/cgroup | exception | error | linux, cgroup, environment, not-found |
| <invalid u64 in memory.current> | validation | warning | linux, cgroup, parse-error, invalid-data |
| spawn shell in {}: {e} | exception | error | process-spawn, shell, io, linux |
| resources persistence writer dropped acknowledgement | exception | error | persistence, actor, broken-pipe, durability |
| session folder is unavailable | exception | error | web-fetch, missing-config, not-found, session |
| resources persistence writer stopped | exception | error | persistence, broken-pipe, channel-closed, shutdown |
| resources persistence writer dropped acknowledgement | exception | error | persistence, broken-pipe, oneshot, durability |
| {} | exception | error | serialization, serde, invalid-data, persistence |
| resources state has no parent directory | exception | error | path-validation, invalid-input, persistence, config |
| path contains NUL | exception | error | windows, filesystem, path, invalid-input |
| daemonize is only supported on Unix and Windows | exception | error | platform, daemon, unsupported |
| process termination is only supported on Linux and Windows | exception | error | platform, process, signal, unsupported |
| invalid magic | exception | error | serialization, binary-format, corruption, filesystem |
| unsupported version: {} | exception | error | serialization, versioning, binary-format, compatibility |
| compressed index requires 'compression' feature | exception | error | serialization, feature-flags, compression, cargo |
| invalid segment id | exception | error | serialization, corruption, binary-format, filesystem |
| File not found | exception | error | testing, mock, filesystem, not-found |
| {} | exception | error | toml, serialization, async, tokio, persistence |
| trust store path has no parent | exception | error | configuration, path, trust-store, invalid-input |
| {} | exception | error | io, serialization, toml, rust |
| {} | exception | error | io, serialization, json, rust, async |
| Invalid viewport height: {} (terminal height: {}) | exception | warning | tui, terminal, validation, rust, ratatui |
| refusing degenerate process-group id {pid} (0 = own group, 1 | exception | error | process, unix, killpg, safety, rust |
| process-group id {pid} exceeds i32::MAX; cannot be used with | exception | error | process, unix, killpg, overflow, rust |
| refusing to killpg the caller's own process group ({pid}) | exception | error | process, unix, killpg, safety, rust |
| blocking pool pre-warm stalled after {started} of {n} thread | exception | error | runtime, threads, timeout, tokio, rust |
| journal is not a regular file: {} | exception | error | io, filesystem, security, symlink, rust |
| journal exceeds {MAX_JOURNAL_BYTES} bytes | exception | error | io, filesystem, limit, journal, rust |
| journal changed during open | exception | warning | io, race-condition, file-system, rust |
| failed to spawn acp-stdin reader thread | panic | error | threading, panics, resource-limits, rust |
| default reqwest client builds | panic | error | http, tls, panics, reqwest, rust |
| aws-lc-rs supports the default protocol versions | panic | error | tls, rustls, panics, configuration, rust |
| set_client_name called more than once | panic | error | global-state, panics, initialization, rust |
| failed to build shared HTTP client | panic | error | http, tls, panics, reqwest, rust |
| failed to build shared upload HTTP client | panic | error | http, tls, upload, panics, reqwest, rust |
| hook HTTP client config is valid | panic | error | http, tls, security, panics, hooks, rust |
| send_with_retry_escaping_pool ran at least one attempt | panic | error | http, retry, invariant, panics, rust |
| failed to build shared blocking HTTP client | panic | critical | rust, http-client, tls, panic, startup |
| Failed to load theme | panic | error | rust, syntax-highlighting, syntect, panic, theme |
| bridge spawn | panic | critical | rust, tokio, acp, panic, leader-cluster |
| initialize through bridge | panic | critical | rust, acp, handshake, panic, leader-cluster |
| authenticate through bridge | panic | critical | rust, acp, authentication, api-key, panic |
| spawn mermaid-render thread | panic | error | rust, threading, panic, mermaid, resource-limits |
| just created | panic | warning | rust, invariant, panic, lazy-init, mermaid |
| set on the use_leader path | panic | error | rust, invariant, fallback, panic, leader-cluster |
| a successful full-replace sample stashes its CompactOutput | panic | error | rust, compaction, invariant, panic, llm-session |
| User question session ended unexpectedly (coordinator channe | error_code | error | rust, channel-closed, tool, interactive-session, acp |
| User question session ended unexpectedly (client may have di | error_code | error | channel-closed, client-disconnect, tokio-oneshot, interactive-session |
| Failed to reach the client for user question: {msg} | error_code | error | transport, network, acp, client-communication |
| Client returned an invalid response to user question: {msg} | error_code | error | schema-mismatch, deserialization, serde, client-response |
| timed out after {:?} | exception | error | timeout, process-spawn, validation, config |
| {} exited with {status} | exception | error | exit-status, process-spawn, validation, config |
| Failed to fetch billing data: {e} | exception | error | http, network, billing, reqwest |
| Billing service error: {detail} | exception | error | http, billing, upstream-error, http-status |
| Failed to parse billing data: {e} | exception | error | deserialization, serde, billing, schema-mismatch |
| Required: file_path (string), line (int), character (int). | validation | error | input-validation, missing-arguments, lsp, tool-parameters |
| No LSP server configured for {} | error_code | error | lsp, configuration, missing-server, language-support |
| Required: file_path (string). | validation | warning | lsp, input-validation, missing-argument |
| Required: query (string). | validation | warning | lsp, input-validation, missing-argument |
| No LSP servers are running. | error_code | error | lsp, configuration, no-servers-running |
| Failed to build web search tool: {e} | exception | error | web-search, request-building, validation |
| Failed to build request: {e} | exception | error | web-search, request-building, validation |
| Failed to serialize request: {e} | exception | error | web-search, serde, serialization |