ErrLookup › zeroclaw-labs/zeroclaw
zeroclaw-labs/zeroclaw
Fast, small, and fully autonomous AI personal assistant infrastructure, any OS, any platform — deploy anywhere, swap anything 🦀 · Rust · 1,121 source files
Analyzed at 88bb9c8533 on 2026-08-23. 1362 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| webhook-audit: {e} | panic | error | acp, agent-alias, delete, cli, fail-closed, websocket-sessions |
| unsupported room visibility '{other}': expected private or p | validation | error | channels, cli, not-implemented, config |
| channel '{}' does not support forge API requests | exception | error | channels, cli, not-implemented, config |
| channel does not support room creation | exception | error | github-api, http-status, update, rate-limit, network |
| channel does not support room invites | exception | error | update, binary-swap, permissions, disk-full, rollback, windows-file-lock |
| elicitation returned unknown choice const: {const_value} | exception | error | update, smoke-test, rollback, binary-compatibility, runtime-missing |
| elicitation returned unknown choice const: {s} | exception | error | download, http-status, github-release, update, network, proxy |
| purge_namespace not supported by this memory backend | exception | error | checksum, sha256sums, update, http-status, integrity, network |
| purge_session not supported by this memory backend | exception | critical | checksum, sha256, tampering, integrity, update, security |
| purge_session_for_agent not supported by this memory backend | exception | error | checksum, sha256sums, parsing, release-packaging, update |
| purge_agent not supported by this memory backend | exception | critical | rust, sqlite, rusqlite, schema-mismatch, migration, panic |
| rename_agent not supported by this memory backend | exception | critical | rust, sqlite, rusqlite, database-locked, concurrency, panic |
| memory backend '{}' does not support StoreOptions kind/pinne | exception | error | rust, tracing, logging, global-state, initialization, panic |
| memory backend '{}' does not support agent-attributed StoreO | exception | critical | rust, wasmtime, wasm, wasi, component-model, plugins, panic |
| live model listing is not supported for this model_provider | exception | critical | rust, wasmtime, wasi-http, plugins, version-mismatch, panic |
| ModelProvider returned non-prompt-guided tools payload ({pay | exception | critical | rust, wasmtime, wasi-http, plugins, version-mismatch, panic |
| Schema missing required 'type' field | validation | error | rust, serde, serialization, anthropic, llm-provider, invariant, panic |
| ACP request_permission failed: {} ({}) | exception | error | rust, builder-pattern, azure, openai, config-validation, panic |
| ACP request_permission timed out after {timeout:?} | exception | error | rust, builder-pattern, azure, openai, config-validation, panic |
| ACP returned unknown optionId: {option_id} | exception | error | rust, builder-pattern, openai-compatible, config-validation, panic |
| ACP returned unexpected outcome: {other} | exception | error | rust, acp, agent-client-protocol, jsonrpc, protocol-violation, request-choice |
| ACP elicitation/create failed: {} ({}) | exception | error | rust, acp, jsonrpc, elicitation, request-choice |
| ACP elicitation/create timed out after {timeout:?} | exception | error | rust, acp, elicitation, timeout, tokio, request-choice |
| AcpChannel.listen is not supported (free-form ask_user await | exception | warning | rust, acp, channel-trait, unsupported-operation, capability-check |
| AcpChannel does not support reactions | exception | warning | rust, acp, reactions, unsupported-operation, channel-trait |
| AcpChannel.request_choice requires at least one choice | exception | error | rust, acp, input-validation, request-choice, empty-argument |
| AcpChannel.request_multi_choice requires at least one choice | exception | error | rust, acp, input-validation, multi-select, empty-argument |
| ACP elicitation/create (multi) failed: {} ({}) | exception | error | rust, acp, elicitation, jsonrpc, multi-select |
| ACP elicitation/create (multi) timed out after {timeout:?} | exception | error | rust, acp, elicitation, timeout, multi-select |
| ACP request_permission timed out after {:?} | exception | error | rust, acp, approval, timeout, session-management |
| ACP returned unknown permission optionId: {other} | exception | error | rust, acp, approval, protocol-violation, permissions |
| ACP returned unexpected permission outcome: {other} | exception | error | rust, acp, approval, protocol-violation, jsonrpc |
| amqp.{}: dispatch = {:?} routes to the SOP engine but no SOP | validation | critical | rust, amqp, sop, config-validation, fail-closed, message-loss-prevention |
| amqp channel '{}': client_cert is set but client_key is miss | validation | error | rust, amqp, mtls, tls, config-validation |
| amqp channel '{}': client_key is set but client_cert is miss | validation | error | rust, amqp, mtls, tls, config-validation |
| amqp channel '{alias}': client_cert contains no certificates | validation | error | rust, amqp, tls, pem, certificate, config-validation |
| createSession failed ({status}): {body} | http | critical | rust, bluesky, atproto, authentication, http-api, credentials |
| post failed ({status}): {body} | http | error | rust, bluesky, atproto, http-api, post, rate-limit |
| Destination {} is not in allowed list | validation | error | clawdtalk, telnyx, voice, allowlist, config |
| Failed to initiate call: {} | http | error | clawdtalk, telnyx, voice, http, api |
| Failed to speak: {} | http | error | clawdtalk, telnyx, tts, voice, call-control |
| Failed to start AI conversation: {} | http | error | clawdtalk, telnyx, ai-voice, call-control |
| gateway registration failed ({status}): {err} | http | error | dingtalk, websocket, stream-mode, auth, config |
| webhook reply failed ({status}): {err} | http | error | dingtalk, webhook, session, messaging |
| WebSocket stream ended | exception | warning | dingtalk, websocket, reconnect, lifecycle |
| interaction defer failed ({status}): {err} | http | error | discord, interactions, slash-commands, timing |
| modal custom_id exceeds Discord's 100-char limit; cannot ope | validation | error | discord, modal, components, custom-id, validation |
| modal open failed ({status}): {err} | http | error | discord, modal, interactions, components |
| interaction autocomplete answer failed ({status}): {err} | http | warning | discord, autocomplete, interactions, performance |
| interaction reject failed ({status}): {err} | http | warning | discord, interactions, authorization, ephemeral |
| interaction followup edit failed ({status}): {err} | http | error | discord, interactions, followup, embeds, webhook |
| interaction followup post failed ({status}): {err} | http | error | discord, interactions, followup, rate-limit, chunking |
| non-success status {} | http | warning | discord, permissions, channels, threads, degraded |
| interaction reply target unknown or expired (id {interaction | validation | error | discord, interactions, state, restart, routing |
| interaction followup token expired (id {interaction_id}, >15 | validation | error | discord, interactions, ttl, timeout, expiry |
| discord send has no recipient: message.recipient is empty an | validation | error | discord, config, recipient, routing |
| Discord add reaction failed ({status}): {err} | http | warning | discord, reactions, emoji, permissions |
| Discord remove reaction failed ({status}): {err} | http | warning | discord, reactions, cleanup, idempotency |
| approval prompts are not supported over interaction replies | validation | error | discord, approval, interaction, slash-command, fail-fast |
| Discord gate-prompt finalize failed ({status}) | http | error | discord, gate-prompt, http-status, finalize, retryable |
| Discord send message failed ({status}): {err} | http | error | discord, rest, http-status, send-message, rate-limit |
| Discord send message with files failed ({status}): {err} | http | error | discord, attachments, multipart, http-status, file-size |
| delete message failed ({status}): {err} | http | warning | discord, delete-message, http-status, draft-cleanup, idempotent |
| desired command set is not an array | validation | error | discord, slash-commands, json-validation, invariant |
| listing commands failed ({}) | http | error | discord, slash-commands, reconcile, http-status, application-id |
| slash command registration failed for '{name}' ({status}): { | http | error | discord, slash-commands, registration, validation, naming-rules |
| {failed_deletes} stale skill command delete(s) failed; recon | exception | warning | discord, slash-commands, reconcile, retry, cleanup |
| email channel '{}' has oauth2 configured but no auth service | validation | error | email, oauth2, imap, wiring, configuration |
| git channel: reading private_key_path `{path}` failed: {e} | validation | error | git, github-app, private-key, filesystem, configuration |
| git channel provider `github` requires the `provider-github` | validation | error | git, github, cargo-feature, build-config |
| git channel provider `{provider}` requires channels.git.<ali | validation | error | git, gitea, forgejo, configuration, api-base-url |
| git channel provider `{provider}` requires the `provider-git | validation | error | git, gitea, forgejo, cargo-feature, build-config |
| unknown git channel provider `{other}` (supported: github, g | validation | error | git, provider, configuration, validation |
| git channel has no repositories to poll; set `repos` or gran | validation | error | git, configuration, repositories, github-app, startup |
| git channel `events` routing table ignores every event type; | validation | error | git, events, routing, configuration, validation |
| invalid forge HTTP method `{}` (expected GET/POST/PATCH/PUT/ | validation | error | git, forge-api, http-method, validation |
| Gmail OAuth token is not configured | validation | error | gmail, oauth-token, configuration, zeroclaw-channels, rust |
| Gmail OAuth token is not configured for sending | validation | error | gmail, oauth-token, send, configuration, rust |
| Cannot persist empty {channel_type} identity | validation | error | identity-persist, qr-pairing, wechat, whatsapp, validation |
| Missing [channels.{channel_type}.{alias}] section in config. | validation | error | identity-persist, configuration, qr-pairing, config-toml |
| peer group [{conventional_key}] already exists but its chann | validation | error | identity-persist, peer-groups, configuration, config-toml |
| Invalid iMessage target: must be a phone number (+1234567890 | validation | error | imessage, recipient-validation, macos, send |
| iMessage send failed: {stderr} | exception | error | imessage, applescript, osascript, macos, permissions |
| Messages database not found at {}. Ensure Messages.app is se | exception | error | imessage, macos, full-disk-access, sqlite, file-not-found |
| IRC connection closed by server | exception | error | irc, disconnect, eof, reconnect, network |
| send failed {context}: status={status}, body={body} | http | error | lark, feishu, http-status, api, send |
| send failed {context}: code={code}, body={body} | http | error | lark, feishu, api-error-code, tenant-token, permissions |
| Lark/Feishu marker target is empty | validation | error | lark, media-marker, validation, upload |
| Lark/Feishu marker target uses a disallowed scheme | validation | error | lark, media-marker, url-scheme, security, validation |
| Lark/Feishu marker target resolves outside workspace_dir | validation | error | lark, media-marker, path-traversal, security, workspace |
| Lark/Feishu marker target is not a file | validation | error | lark, media-marker, filesystem, upload |
| WS endpoint failed: code={} msg={} | http | error | lark, feishu, websocket, app-credentials, events |
| initial ping failed | exception | error | lark, websocket, ping, reconnect, proxy |
| tenant_access_token request failed: status={status}, body={d | http | critical | lark, feishu, authentication, http, tenant-access-token |
| tenant_access_token failed: {msg} | http | critical | lark, feishu, credentials, invalid-secret, authentication |
| bot info request failed after token refresh: status={retry_s | http | error | lark, bot-info, token-refresh, http, retry-exhausted |
| bot info request failed: status={status}, body={body} | http | error | lark, bot-info, http, forbidden, rate-limit |
| bot info failed: code={code}, body={body} | http | error | lark, bot-info, permissions, scopes, business-error |
| audio download exceeds {} byte limit | validation | warning | lark, audio, size-limit, streaming, transcription |
| audio download failed after token refresh: {} | http | warning | lark, audio, token-refresh, expired-resource, download |
| audio download failed: {} | http | warning | lark, audio, download, http, expired-resource |
| send failed after token refresh: status={retry_status}, body | http | error | lark, send, token-refresh, authentication, retry-exhausted |
| upload image failed after token refresh: status={retry_statu | http | error | lark, image-upload, token-refresh, authentication, multipart |
| upload file failed after token refresh: status={retry_status | http | error | lark, file-upload, token-refresh, authentication, multipart |
| Lark add_reaction failed for {message_id}: status={status}, | http | warning | lark, add-reaction, http, non-fatal, emoji |
| audio download failed ({status}) for message {message_id} | http | warning | line, audio, download, http, content-expired |
| audio exceeds {} byte limit for message {message_id} | validation | warning | line, audio, size-limit, streaming, transcription |
| Cannot persist empty LINE userId | validation | error | line, webhook, validation, user-id, pairing |
| Missing [channels.line.{}] section | validation | error | line, config, alias, persistence, config-drift |
| failed to fetch bot info ({status}): {err} | http | critical | line, authentication, bot-info, http, invalid-token |
| Reply API failed ({status}): {err} | http | error | line, reply, reply-token, expired-token, messaging-api |
| Push API failed ({status}): {err} | http | error | line, push, quota, plan-restriction, messaging-api |
| API error: {status} | http | error | linq, linqapp, http, chat-creation, partner-api |
| matrix: draft message id is empty | validation | error | matrix, draft, validation, empty-id |
| matrix: partial draft state unavailable | validation | error | matrix, draft, state-machine, enum-variant |
| matrix: single-message draft state unavailable | validation | error | matrix, draft, state-machine, enum-variant, single-message |
| matrix: multi-message draft state unavailable | validation | error | matrix, draft, state-machine, enum-variant, multi-message |
| matrix: corruption recovery looped — aborting to avoid an in | exception | critical | matrix, recovery, corruption, restart-loop, state-dir |
| matrix: {reason} Cannot auto-recover because channels.matrix | validation | critical | matrix, auth, session, state-dir, config, recovery |
| matrix login requires either access_token or user_id+passwor | validation | error | matrix, auth, config, login, credentials |
| matrix: configured channels.matrix.user-id ({configured}) do | validation | error | matrix, auth, access-token, whoami, identity, config |
| matrix: configured channels.matrix.device-id ({configured}) | validation | error | matrix, auth, access-token, whoami, device-id, config |
| matrix: whoami response did not include device_id; configure | validation | error | matrix, auth, whoami, device-id, access-token, homeserver |
| matrix: whoami request failed with HTTP {status}: {body} | http | error | matrix, whoami, http-status, access-token, auth, homeserver |
| matrix: whoami response did not include user_id | validation | error | matrix, whoami, auth, parse, homeserver |
| matrix: not a room id or alias: {id_or_alias} | validation | error | matrix, room-id, alias, recipient, validation |
| matrix: marker URL {url} returned HTTP status {status} | http | error | matrix, marker, http-status, attachment, fetch |
| matrix: marker URL {url} exceeded {MAX_MARKER_BYTES}-byte ca | validation | error | matrix, marker, size-limit, attachment, fetch |
| matrix: configured message_max_bytes cannot contain a thread | validation | error | matrix, message-size, threading, config, send |
| matrix: selected single-message progress edit exceeds config | validation | error | matrix, message-size, single-message, edit, config |
| matrix: room {recipient} is not in joined state | exception | error | matrix, room-state, membership, join, send |
| matrix: `homeserver` is required | validation | error | matrix, config, homeserver, validation, startup |
| matrix: configure either `access_token` or `password` | validation | error | matrix, config, credentials, rust |
| GET /channels/{id} returned {}: explicit channel_id is not a | http | error | mattermost, channel-access, http-status, rust |
| GET /users/me/channels returned {} | http | error | mattermost, discovery, http-status, auth, rust |
| login failed ({status}): {body} | http | error | mattermost, login, auth, http-status, rust |
| Mattermost WebSocket authentication handshake timed out | exception | error | mattermost, websocket, handshake, timeout, rust |
| Mattermost WebSocket closed during authentication: {reason} | exception | error | mattermost, websocket, handshake, connection-closed, rust |
| Mattermost WebSocket ended during authentication | exception | error | mattermost, websocket, handshake, connection-reset, rust |
| Mattermost WebSocket authentication was rejected | exception | error | mattermost, websocket, auth, invalid-token, rust |
| post failed ({status}): {body} | http | error | mattermost, send, http-status, rust |
| Mattermost WebSocket stream ended | exception | error | mattermost, websocket, connection-reset, rust |
| Mattermost WebSocket closed: {reason} | exception | error | mattermost, websocket, connection-closed, rust |
| Mattermost WebSocket idle for {} seconds | exception | error | mattermost, websocket, idle-timeout, rust |
| Mochat send message failed ({status}): {err} | http | error | mochat, send, http-status, auth, rust |
| Mochat API error (code={code}): {msg} | exception | error | mochat, send, api-error-code, rust |
| Nextcloud Talk: no bot secret configured (set bot_token or w | validation | error | nextcloud-talk, config, credentials, hmac-signing, rust |
| Talk API error: {status} | http | error | nextcloud-talk, send, http-status, rust |
| Failed to detect Notion database schema: {e} | exception | error | notion, schema, database-access, rust |
| model_provider `{family}` has multiple configured aliases; u | validation | error | orchestrator, models-command, config, rust |
| model_provider `{ref_or_family}` does not resolve to a confi | validation | error | model-provider, configuration, runtime-switch, zeroclaw |
| unknown model_provider `{raw}` | validation | error | model-provider, invalid-argument, runtime-switch, zeroclaw |
| agents.{agent_alias}.model_provider is empty; runtime reload | validation | error | model-provider, agents, configuration, runtime-reload, zeroclaw |
| model_provider reference must not be empty | validation | error | model-provider, empty-value, validation, zeroclaw |
| model_provider `{trimmed}` must use `<type>.<alias>` form | validation | error | model-provider, reference-format, configuration, zeroclaw |
| model_provider `{trimmed}` does not resolve to a configured | validation | error | model-provider, reference-not-found, configuration, zeroclaw |
| Channel type `{channel_type}` does not support identity bind | validation | error | identity-binding, channel-type, allowlist, zeroclaw |
| {channel_type} identity cannot be empty | validation | error | identity-binding, empty-value, validation, zeroclaw |
| {channel_type} channel alias `{alias}` is not configured. Ru | validation | error | identity-binding, channel-alias, configuration, zeroclaw |
| launchctl start failed: {} | exception | critical | daemon, launchd, macos, service-restart, zeroclaw |
| rc-service restart failed: {} | exception | critical | daemon, openrc, linux, service-restart, zeroclaw |
| systemctl restart failed: {} | exception | critical | daemon, systemd, linux, service-restart, zeroclaw |
| Telegram channel requires the `channel-telegram` feature | exception | error | feature-flag, telegram, build-configuration, zeroclaw |
| Discord channel requires the `channel-discord` feature | exception | error | feature-flag, discord, build-configuration, zeroclaw |
| Slack channel requires the `channel-slack` feature | exception | error | feature-flag, slack, build-configuration, zeroclaw |
| Mattermost channel requires the `channel-mattermost` feature | exception | error | feature-flag, mattermost, build-configuration, zeroclaw |
| Signal channel requires the `channel-signal` feature | exception | error | feature-flag, signal, build-configuration, zeroclaw |
| Matrix channel requires the `channel-matrix` feature | exception | error | feature-flag, matrix, build-configuration, zeroclaw |
| WhatsApp channel send requires Web mode (set session_path, p | validation | error | whatsapp, channel-mode, configuration, zeroclaw |
| WhatsApp channel requires the `whatsapp-web` feature | exception | error | feature-flag, whatsapp, build-configuration, zeroclaw |
| QQ channel requires the `channel-qq` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, qq |
| Lark channel requires the `channel-lark` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, lark |
| DingTalk channel requires the `channel-dingtalk` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, dingtalk |
| WeCom channel requires the `channel-wecom` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, wecom |
| WeCom WebSocket channel requires the `channel-wecom-ws` feat | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, wecom, websocket |
| WeChat channel requires the `channel-wechat` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, wechat |
| Nextcloud Talk channel requires the `channel-nextcloud` feat | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, nextcloud |
| Linq channel requires the `channel-linq` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, linq |
| Email channel requires the `channel-email` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, email, imap |
| Gmail Push channel requires the `channel-email` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, gmail, email |
| IRC channel requires the `channel-irc` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, irc |
| Twitch channel requires the `channel-twitch` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, twitch |
| X/Twitter channel requires the `channel-twitter` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, twitter |
| Git channel requires the `channel-git` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, git, github, gitea |
| Mochat channel requires the `channel-mochat` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, mochat |
| iMessage channel is not configured | validation | error | zeroclaw, configuration, channels, imessage, config-missing-section |
| iMessage channel requires the `channel-imessage` feature | exception | error | rust, cargo-features, feature-gate, zeroclaw, channels, imessage |
| LINE channel requires the `channel-line` feature | validation | error | rust, cargo-features, feature-gate, zeroclaw, channels, line |
| Voice Call channel requires the `channel-voice-call` feature | validation | error | rust, cargo-features, feature-gate, zeroclaw, channels, voice-call |
| start_channels requires at least one enabled [agents.<alias> | validation | critical | zeroclaw, configuration, startup, agents, supervisor |
| [channels.lark.{alias}] has use_feishu=false but cron channe | validation | error | lark, feishu, config-mismatch, cron-delivery, channels |
| Webhook channel requires the `channel-webhook` feature | validation | error | webhook, cargo-feature, channels, cron-delivery, build-config |
| wecom_ws channel is not connected | exception | error | wecom, wecom-ws, websocket, connection, cron-delivery, channels |
| unsupported delivery channel: {other} | validation | error | channels, cron-delivery, routing, typo, validation |
| Refusing to transmit sensitive data over non-HTTPS URL: URL | validation | error | qq, https, security, tls, url-validation |
| QQ token request failed ({status}): {err} | http | error | qq, oauth, access-token, authentication, network |
| QQ gateway request failed ({status}): {err} | http | error | qq, websocket, gateway, authentication, network |
| QQ upload media failed ({status}): {err} | http | error | qq, media-upload, attachments, api-error |
| QQ send media message failed ({status}): {err} | http | error | qq, media-message, file-info, api-error, attachments |
| QQ attachment path not found: {target} | validation | error | qq, attachments, file-not-found, paths |
| QQ attachment too large ({} bytes, max {}): {target} | validation | error | qq, attachments, file-size, upload-limit |
| Download failed ({}): {url} | http | error | qq, attachment-download, http-status, rkey, cdn, channel |
| QQ send message failed ({status}): {err} | http | error | qq, send-message, http-status, bot-api, markdown, authentication |
| QQ WebSocket connection closed: invalid session (fresh auth | exception | error | qq, websocket, invalid-session, reconnect, gateway, channel |
| QQ WebSocket connection closed: server requested reconnect ( | exception | warning | qq, websocket, reconnect, resume, gateway, lifecycle |
| QQ WebSocket connection closed: close_code={code}, reason="{ | exception | error | qq, websocket, close-frame, reconnect, gateway, channel |
| QQ WebSocket connection closed: stream ended unexpectedly | exception | error | qq, websocket, connection-dropped, reconnect, resume, network |
| QQ WebSocket connection closed: heartbeat ACK timeout ({MAX_ | exception | error | qq, websocket, heartbeat-timeout, zombie-connection, reconnect, network |
| QQ WebSocket connection closed: write failed | exception | error | qq, websocket, write-failed, broken-pipe, reconnect, network |
| QQ WebSocket connection closed: internal message channel clo | exception | error | qq, websocket, channel-closed, shutdown, tokio-mpsc, lifecycle |
| token refresh failed ({status}): {body} | exception | critical | reddit, oauth, refresh-token, authentication, http-status, channel |
| comment reply failed ({status}): {body} | exception | error | reddit, comment-reply, rate-limit, http-status, api, channel |
| DM failed ({status}): {body} | exception | error | reddit, direct-message, rate-limit, http-status, api, channel |
| Signal RPC error {code}: {msg} | exception | error | signal, signal-cli, json-rpc, rpc-error, channel, messaging |
| Signal poll requires at least 2 options (got {}); render as | validation | warning | signal, poll, validation, fallback, send-choice |
| chat.postMessage (lazy draft) failed: {err} | exception | error | slack, chat-postmessage, web-api, draft, streaming, http-status |
| assistant.threads.setStatus failed: {} | exception | warning | slack, assistant-threads, set-status, web-api, cosmetic, scopes |
| Slack outbound attachment target must be a local workspace p | validation | error | slack, attachment, validation, url-rejected, security-guard, workspace |
| Slack outbound attachment path must be absolute: {target} | validation | error | slack, attachment, validation, absolute-path, path, workspace |
| Slack outbound attachment path escapes workspace: {} | validation | error | slack, attachment, path-traversal, security-guard, symlink, workspace |
| Slack outbound attachment target is not a file: {} | validation | error | slack, attachment, not-a-file, validation, fs, workspace |
| Slack outbound attachment exceeds {} bytes: {} | validation | error | |
| Slack outbound attachment is empty: {} | validation | error | |
| files.getUploadURLExternal failed: {err} | exception | error | |
| Slack file byte upload failed ({status}): {sanitized} | exception | error | |
| files.completeUploadExternal failed: {err} | exception | error | |
| chat.postMessage failed ({status}): {sanitized} | exception | error | |
| chat.postMessage failed: {err} | exception | error | |
| chat.update failed ({status}): {sanitized} | exception | error | |
| chat.update failed: {err} | exception | error | |
| Slack attachment save directory escapes workspace: {} | validation | error | |
| Slack conversations.list failed ({status}): {sanitized} | exception | error | |
| Slack conversations.list failed: {err} | exception | error | |
| Slack apps.connections.open failed ({status}): {sanitized} | exception | error | |
| Slack apps.connections.open failed: {err} | exception | error | |
| Slack reactions.add failed ({status}): {sanitized} | exception | error | |
| Slack reactions.add failed: {err} | exception | error | |
| Slack reactions.remove failed ({status}): {sanitized} | exception | error | |
| Slack reactions.remove failed: {err} | exception | warning | slack, reactions, bot-api, anyhow, scopes |
| Cannot persist empty Telegram identity | validation | error | telegram, identity, pairing, config, validation |
| Missing [channels.telegram.{}] section. Run `zeroclaw config | validation | error | telegram, config, toml, pairing, bootstrap |
| TTS returned empty audio | exception | error | telegram, tts, ffmpeg, opus, voice-note |
| {method} failed: status={status}, body={body} | exception | error | telegram, sendvoice, multipart, bot-api, rate-limit |
| Failed to fetch bot info: {} | exception | error | telegram, getme, auth, bot-token, startup |
| Telegram file download failed: {} | exception | error | telegram, getfile, download, expired-link, bot-api |
| Telegram sendMessage failed (markdown {}: {}; plain {}: {}) | exception | error | telegram, sendmessage, html-parse-mode, rate-limit, blocked |
| {method} by URL failed: {err} | exception | error | telegram, send-by-url, media, bot-api |
| Telegram attachment path not found: {target} | validation | error | telegram, attachment, docker, filesystem, path-mapping |
| Telegram sendDocument failed: {err} | exception | error | telegram, senddocument, multipart, upload, size-limit |
| Telegram sendPhoto failed: {err} | exception | error | telegram, sendphoto, multipart, upload, image |
| Telegram sendVideo failed: {err} | exception | error | telegram, sendvideo, multipart, upload, video |
| Telegram sendAudio failed: {err} | exception | error | telegram, sendaudio, multipart, upload, audio |
| Telegram sendVoice failed: {err} | exception | error | telegram, sendvoice, multipart, opus, upload |
| Telegram sendDocument by URL failed: {err} | exception | error | telegram, senddocument, send-by-url, bot-api |
| Telegram sendPhoto by URL failed: {err} | exception | error | telegram, sendphoto, send-by-url, bot-api, image |
| Telegram sendMessage (draft) failed: {err} | exception | error | telegram, sendmessage, streaming, draft, rate-limit |
| Telegram sendMessage (approval) failed ({status}): {err} | exception | error | telegram, bot-api, http-status, approval, config |
| Telegram sendMessage (approval) failed after fallback | exception | error | telegram, bot-api, approval, unreachable-branch |
| Audio file too large ({} bytes, max {MAX_AUDIO_BYTES}) | validation | warning | audio, file-size, validation, transcription, pre-flight-check |
| Deepgram API error ({}): {} | exception | error | deepgram, http-status, api-key, transcription, quota |
| AssemblyAI upload error ({}): {} | exception | error | assemblyai, upload, http-status, api-key, transcription |
| AssemblyAI transcription error ({}): {} | exception | error | assemblyai, http-status, api-key, transcription, job-create |
| AssemblyAI poll error ({}): {} | exception | error | assemblyai, polling, http-status, transcription, transient |
| AssemblyAI transcription failed: {} | exception | error | assemblyai, transcription, media-format, terminal-failure |
| AssemblyAI transcription timed out after 180s | exception | error | assemblyai, timeout, polling, transcription, long-audio |
| Google STT does not support '.{ext}' input | validation | warning | google, stt, unsupported-format, transcription, pre-flight-check |
| Google STT requires a file extension | validation | warning | google, stt, missing-extension, transcription, pre-flight-check |
| Google STT API error ({}): {} | exception | error | google, stt, http-status, quota, transcription, audio-length |
| Audio file too large ({} bytes, local_whisper max {}) | validation | warning | local-whisper, file-size, transcription, config, pre-flight-check |
| Transcription API error ({}): {} | exception | error | groq, openai, whisper, localai, http-status, transcription |
| transcription.max_audio_bytes must be greater than zero | validation | error | config, validation, transcription, startup |
| Transcription is enabled but no transcription provider regis | validation | error | config, transcription, startup, missing-provider |
| Transcription is enabled but no transcription provider regis | validation | error | config, transcription, startup, missing-provider |
| Agent has no transcription_provider configured. Set `agent.< | validation | error | config, transcription, agent, missing-provider |
| Audio file too large ({} bytes, global max {}) | validation | warning | audio, file-size, config, transcription, pre-flight-check |
| OpenAI TTS API error ({}): {} | exception | error | openai, tts, http, api, config |
| ElevenLabs voice ID contains invalid characters: {voice} | validation | error | elevenlabs, tts, validation, voice-id |
| ElevenLabs TTS API error ({}): {} | exception | error | elevenlabs, tts, http, api, auth |
| Google TTS API error ({}): {} | exception | error | google-cloud, tts, http, api, auth |
| Edge TTS binary_path must be a bare command name without pat | validation | error | edge-tts, tts, config, validation, security |
| Edge TTS binary_path must be one of {:?}, got: {raw_path} | validation | error | edge-tts, tts, config, validation, allowlist |
| Edge TTS subprocess timed out | exception | error | edge-tts, tts, subprocess, timeout |
| edge-tts failed (exit {}): {} | exception | error | edge-tts, tts, subprocess, stderr |
| Piper TTS API error ({}): {} | http | error | piper, tts, http, local-server |
| ffmpeg transcode to opus failed: {stderr} | exception | error | ffmpeg, tts, opus, transcode, libopus |
| Agent has no tts_provider configured. Set `agent.<alias>.tts | validation | error | tts, config, agent, setup |
| TTS text must not be empty | validation | error | tts, validation, input |
| TTS text too long ({} chars, max {}) | validation | error | tts, validation, input, length-limit |
| Twitter users/me failed ({status}): {err} | http | error | twitter, x-api, http, auth, oauth |
| Twitter create tweet failed ({status}): {err} | http | error | twitter, x-api, http, rate-limit, posting |
| Twitter DM send failed ({status}): {err} | http | error | twitter, x-api, dm, http, auth |
| response body content length {content_length} exceeds {max_b | validation | error | http, response-body, limit, mattermost, qq |
| response body exceeds {max_bytes}-byte limit | validation | error | http, response-body, chunked, limit, streaming |
| Twilio call failed: {body} | http | error | twilio, voice-call, http, telephony, auth |
| Telnyx call failed: {body} | http | error | telnyx, voice-call, http-api, config, e164 |
| Plivo call failed: {body} | http | error | plivo, voice-call, http-api, config, webhook-url |
| Call not found: {call_id} | exception | warning | voice-call, transcript, not-found, state |
| Unsupported input sample format: {format} | validation | error | voice-wake, cpal, audio, sample-format, version-mismatch |
| VoiceWake: audio stream ended unexpectedly | exception | error | voice-wake, audio, device-disconnect, liveness |
| webhook channel requires a `secret` configured for request a | validation | error | webhook, config, security, secret, fail-closed |
| media aes_key must decode to 16 raw bytes or 32 hex chars, g | validation | error | wechat, aes-key, encryption, media, validation |
| {field_name} must use https://, got {url} | validation | error | wechat, config, https, url-validation, tls |
| QR payload is empty | validation | warning | wechat, qr-code, login, empty-response, terminal |
| attachment path {} canonicalizes to {} which escapes workspa | validation | error | security, path-traversal, symlink, filesystem, wechat, attachment, sandbox |
| attachment path {} escapes workspace {} | validation | error | security, path-traversal, filesystem, wechat, attachment, sandbox |
| refusing non-HTTPS attachment URL: {url} | validation | error | security, https, url, attachment, wechat, download |
| attachment download failed ({status}): {body} | http | error | network, http, attachment, download, wechat, cdn |
| attachment Content-Length ({len} bytes) exceeds {} MB limit | validation | error | attachment, download, size-limit, wechat, content-length |
| attachment exceeds {} MB limit | validation | error | attachment, download, size-limit, wechat, chunked-transfer |
| attachment path not found: {} | validation | error | filesystem, attachment, file-not-found, wechat, workspace |
| getUploadUrl failed ({status}): {body} | http | error | wechat, api, upload, authentication, attachment, http |
| inbound attachment exceeds {} MB limit | validation | error | wechat, attachment, size-limit, media, validation, inbound |
| WeChat QR code expired {$max} times, giving up. | exception | error | wechat, login, qr-code, authentication, retry-limit |
| WeChat QR code fetch failed ({$status}): {$body} | http | error | wechat, login, qr-code, http, api, config |
| sendMessage failed ({status}): {err} | http | error | wechat, send-message, http, api, outbound |
| sendMessage failed ({err}) | http | error | wechat, send-message, errcode, api-response, outbound |
| WeCom webhook send failed ({status}): {err} | http | error | wecom, webhook, http, send, health-check |
| WeCom API error (errcode={errcode}): {errmsg} | http | error | wecom, webhook, errcode, api-response, rate-limit |
| WeCom media aeskey too short: expected >= 32 bytes, got {} | validation | error | wecom, aes, encryption, config, base64, key |
| WeCom WebSocket stream_mode={} is not supported; use partial | validation | error | wecom, websocket, stream-mode, config, constructor |
| WeCom WebSocket not connected | exception | error | wecom, websocket, connection, startup, readiness |
| WeCom WS {command} response channel closed before ack (req_i | exception | error | wecom, websocket, ack, channel, race, shutdown |
| WeCom WS {command} ack timeout after {}s (req_id={req_id}) | exception | error | wecom, websocket, timeout, ack, send |
| WeCom max_file_size_bytes is zero | validation | error | wecom, config, attachment, validation, size-limit |
| WeCom attachment download failed: kind={} msg_id={} url_targ | http | error | wecom, attachment, download, http, media, inbound |
| invalid WeCom padding: empty payload | exception | error | wecom, decryption, padding, aes, payload |
| invalid WeCom padding length | exception | error | wecom, decryption, padding, aes, corrupt-data, key-mismatch |
| missing msgtype | exception | error | wecom, message-parsing, schema, validation, inbound |
| WeCom: invalid scope format: {scope} | validation | error | wecom, scope, address-format, validation, send |
| Refusing to transmit sensitive data over non-HTTPS URL: URL | validation | error | whatsapp, https, security, url, config, tls |
| WhatsApp interactive buttons require 1..=3 options (got {}); | validation | error | whatsapp, cloud-api, interactive-buttons, validation, rust |
| WhatsApp interactive list requires at least one section | validation | error | whatsapp, interactive-list, validation, rust |
| WhatsApp interactive list capped at 10 sections (got {}) | validation | error | whatsapp, interactive-list, api-limits, validation, rust |
| WhatsApp interactive list section '{}' capped at 10 rows (go | validation | error | whatsapp, interactive-list, api-limits, validation, rust |
| WhatsApp API error: {status} | http | error | whatsapp, cloud-api, http, meta-graph-api, auth, rust |
| WhatsApp location marker must be `lat,lng[,name[,address]]` | validation | error | whatsapp, location, parsing, validation, wgs84, rust |
| WhatsApp send_choice: {} options exceeds list cap ({}); spli | validation | error | whatsapp, interactive-list, api-limits, validation, rust |
| QR payload is empty | validation | error | whatsapp-web, pairing, qr-code, rust |
| Recipient cannot be empty | validation | error | whatsapp-web, recipient, validation, rust |
| Recipient `{trimmed}` does not contain a valid phone number | validation | error | whatsapp-web, recipient, phone-number, validation, rust |
| TTS returned empty audio | exception | error | whatsapp-web, tts, audio, validation, rust |
| WhatsApp marker target {} is empty | validation | error | whatsapp-web, attachment, file-io, validation, rust |
| WhatsApp Web client not connected. Initialize the bot first. | exception | error | whatsapp-web, connection-state, lifecycle, rust |
| Device exists but failed to load | exception | error | whatsapp-web, session, persistence, rust |
| exceeded {} reconnect attempts, giving up | exception | critical | whatsapp-web, reconnect, retry, network, rust |
channel-whatsapp-web-feature-missing-error WhatsApp Web channel requires the 'whatsapp-web' feature. Enable with: cargo bui | validation | error | whatsapp-web, cargo-feature, build-config, rust |
| Estimated cost must be a finite, non-negative value | validation | error | cost-tracking, budget, nan, floating-point, validation |
| Token usage cost must be a finite, non-negative value | validation | error | cost-tracking, usage, nan, floating-point, validation |
| Unknown OTP domain category '{category}'. Known categories: | validation | error | domain-matcher, otp, config-validation, enum-value |
| config at {} is schema_version {from}, newer than this binar | validation | error | config, migration, version-mismatch, downgrade |
| config at {} is schema_version {from}; run `zeroclaw config | validation | error | config, migration, upgrade |
| cannot migrate backwards from V{from} to V{target} | validation | error | migration, downgrade, versioning |
| target V{target} exceeds CURRENT_SCHEMA_VERSION (V{CURRENT_S | validation | error | migration, version-bounds, config |
| Docker runtime requires an absolute workspace path, got: {} | validation | error | docker, workspace, filesystem, path |
| Refusing to mount filesystem root (/) into docker runtime | validation | error | docker, security, workspace, mount |
| Workspace path {} is not in runtime.docker.allowed_workspace | validation | error | docker, security, allowlist, workspace |
| Docker runtime environment passthrough key must be a variabl | validation | error | docker, environment, env-vars, validation |
| runtime.kind='cloudflare' is not implemented yet. Use runtim | validation | error | runtime, cloudflare, not-implemented, config |
| runtime.shell must not be empty or whitespace | validation | error | runtime, shell, config, unix |
| runtime.shell {shell:?} is a relative path; use a bare name | validation | error | runtime, shell, relative-path, unix |
| runtime.shell {shell:?} was not found on PATH; use an absolu | validation | error | runtime, shell, path, environment |
| runtime.shell {shell:?} (resolved to {}) does not exist | validation | error | runtime, shell, missing-file |
| runtime.shell {shell:?} (resolved to {}) could not be inspec | validation | error | runtime, shell, permissions, io |
| runtime.shell {shell:?} (resolved to {}) is not a regular fi | validation | error | runtime, shell, file-type |
| runtime.shell {shell:?} (resolved to {}) is not executable | validation | error | runtime, shell, permissions, executable-bit |
| Unsupported proxy service selector '{selector}'. Use tool `p | validation | error | proxy, config, validation, services |
| Proxy is enabled but no proxy URL is configured. Set at leas | validation | error | proxy, config, validation |
| proxy.scope='services' requires a non-empty proxy.services l | validation | error | proxy, config, validation, scope |
| plugins.entries[{index}].name must not be empty | validation | error | |
| plugins.entries[{index}].name must not have leading or trail | validation | error | |
| plugins.entries contains a duplicate instance key | validation | error | |
| mcp.servers contains duplicate name: {name} | validation | error | |
| mcp.servers[{i}].tool_timeout_secs exceeds max {MCP_MAX_TOOL | validation | error | |
| mcp.servers[{i}] with transport=stdio requires non-empty com | validation | error | |
| mcp.servers[{i}].url must use http/https | validation | error | |
| mcp.servers[{i}].tls_ca_cert_path must be an absolute path | validation | error | |
| mcp.servers[{i}].url must use https when tls_ca_cert_path is | validation | error | |
| Invalid {field} URL scheme '{scheme}'. Allowed: http, https, | validation | error | |
| Invalid {field} URL: host is required | validation | error | |
| HTTP CONNECT proxy closed connection before response | exception | error | |
| HTTP CONNECT proxy returned non-200 response: {status_line} | exception | error | |
| HTTP CONNECT proxy response too large | exception | error | |
| Unsupported proxy scheme '{scheme}' for WebSocket connection | exception | error | |
| memory.candidate_multiplier must be in 1..={MAX_MEMORY_RERAN | validation | error | |
| {path} must be a finite number in 0.0..=1.0 (got {value}) | validation | error | |
| {entry_path}.{field_name}[{field_index}] must be a non-empty | validation | error | |
| {entry_path}.{field_name} contains duplicate argument '{fiel | validation | error | |
| {entry_path}.default_base duplicates the list's default_base | validation | error | |
| {entry_path}.tool must be a non-empty exact tool name withou | validation | error | matrix, streaming, config, tool-arguments, zeroclaw |
| {entry_path}.tool duplicates the rule for tool '{tool}' | validation | error | matrix, streaming, config, duplicate, tool-arguments |
| {entry_path} includes and excludes the same argument '{field | validation | error | matrix, streaming, config, conflicting-values, tool-arguments |
| qos must be 0, 1, or 2, got {} | validation | error | mqtt, config, qos, zeroclaw |
| broker_url must start with 'mqtt://' or 'mqtts://', got: {} | validation | error | mqtt, config, url, scheme, zeroclaw |
| use_tls is true but broker_url uses 'mqtt://' (not 'mqtts:// | validation | error | mqtt, config, tls, zeroclaw |
| use_tls is false but broker_url uses 'mqtts://' (requires us | validation | error | mqtt, config, tls, zeroclaw |
| at least one topic must be configured | validation | error | mqtt, config, topics, required-field, zeroclaw |
| at least one path must be configured | validation | error | filesystem, config, required-field, zeroclaw |
| path '{path}' is a broad system root; set allow_broad_roots | validation | error | filesystem, config, watch-paths, safety-guard, zeroclaw |
| event '{kind}' is invalid; expected created, modified, delet | validation | error | filesystem, config, events, invalid-value, zeroclaw |
| amqp_url must start with 'amqp://' or 'amqps://', got: {} | validation | error | amqp, rabbitmq, config, url, scheme, zeroclaw |
| amqps:// requires ca_cert to verify the broker | validation | error | amqp, tls, ca-cert, config, zeroclaw |
| client_cert is set but client_key is missing (both are requi | validation | error | amqp, mtls, config, certificates, zeroclaw |
| client_key is set but client_cert is missing (both are requi | validation | error | amqp, mtls, config, certificates, zeroclaw |
| at least one routing key must be configured | validation | error | amqp, rabbitmq, config, routing-keys, required-field, zeroclaw |
| cloud_ops.default_cloud must not be empty when cloud_ops is | validation | error | cloud-ops, config, required-field, zeroclaw |
| cloud_ops.supported_clouds must not be empty when cloud_ops | validation | error | cloud-ops, config, required-field, zeroclaw |
| cloud_ops.default_cloud '{}' is not in cloud_ops.supported_c | validation | error | cloud-ops, config, consistency, zeroclaw |
| cloud_ops.cost_threshold_monthly_usd must be non-negative, g | validation | error | cloud-ops, config, numeric-range, zeroclaw |
| cloud_ops.iac_tools must not be empty when cloud_ops is enab | validation | error | configuration, validation, cloud, zeroclaw, rust |
| gateway.path_prefix contains invalid character '{bad}'; only | validation | error | configuration, validation, gateway, uri, zeroclaw, rust |
| risk_profiles.{profile_alias}.shell_env_passthrough[{i}] is | validation | error | configuration, validation, environment-variables, risk-profiles, zeroclaw, rust |
| security.otp.cache_valid_secs must be greater than or equal | validation | error | configuration, validation, security, otp, zeroclaw, rust |
| security.otp.gated_actions[{i}] contains invalid characters: | validation | error | configuration, validation, security, otp, zeroclaw, rust |
| providers.models.{profile_name}.uri must use http/https | validation | error | configuration, validation, providers, url, zeroclaw, rust |
| providers.models.{profile_name}.pricing.{key}: value must no | validation | error | configuration, validation, providers, pricing, zeroclaw, rust |
| providers.models.{profile_name}.pricing.{key}: value must be | validation | error | configuration, validation, providers, pricing, zeroclaw, rust |
| providers.models.ollama.{alias}.model uses ':cloud', but uri | validation | error | configuration, validation, ollama, providers, zeroclaw, rust |
| providers.models.ollama.{alias}.model uses ':cloud', but no | validation | error | configuration, validation, ollama, api-key, providers, zeroclaw, rust |
| microsoft365.tenant_id must not be empty when microsoft365 i | validation | error | configuration, validation, microsoft365, entra-id, zeroclaw, rust |
| microsoft365.client_id must not be empty when microsoft365 i | validation | error | configuration, validation, microsoft365, entra-id, zeroclaw, rust |
| microsoft365.auth_flow must be 'client_credentials' or 'devi | validation | error | configuration, validation, microsoft365, auth-flow, zeroclaw, rust |
| microsoft365.client_secret must not be empty when auth_flow | validation | error | configuration, validation, microsoft365, auth-flow, secrets, zeroclaw, rust |
| microsoft365.auth_flow must be client_credentials or device_ | validation | error | configuration, validation, microsoft365, auth-flow, duplicate-code, zeroclaw, rust |
| microsoft365.client_secret must not be empty when auth_flow | validation | error | configuration, validation, microsoft365, secrets, duplicate-code, zeroclaw, rust |
| google_workspace.allowed_services[{i}] contains invalid char | validation | error | configuration, validation, google-workspace, zeroclaw, rust |
| google_workspace.allowed_services contains duplicate entry: | validation | error | configuration, validation, google-workspace, duplicates, zeroclaw, rust |
| google_workspace.allowed_operations[{i}].resource must not b | validation | error | config, google-workspace, validation, toml |
| google_workspace.allowed_operations[{i}].service '{service}' | validation | error | config, google-workspace, cross-field-validation, toml |
| google_workspace.allowed_operations[{i}].service contains in | validation | error | config, google-workspace, validation, naming |
| google_workspace.allowed_operations[{i}].resource contains i | validation | error | config, google-workspace, validation, naming |
| google_workspace.allowed_operations[{i}].sub_resource must n | validation | error | config, google-workspace, validation, optional-field |
| google_workspace.allowed_operations[{i}].sub_resource contai | validation | error | config, google-workspace, validation, naming |
| google_workspace.allowed_operations[{i}].methods[{j}] contai | validation | error | config, google-workspace, validation, naming |
| project_intel.default_language must be one of: en, de, fr, i | validation | error | config, project-intel, i18n, validation |
| skills.extra_registries[{i}].name '{}' is invalid; use only | validation | error | config, skills, registry, naming |
| skills.extra_registries[{}].url is not a valid URL: {e} | validation | error | config, skills, registry, url, parsing |
| notion.database_id must not be empty when notion.enabled = t | validation | error | notion, config, validation, integration, toml |
| tunnel.pinggy.region must be one of: us, eu, ap, br, au (or | validation | error | tunnel, pinggy, config, validation, enum |
| jira.base_url must not be empty when jira.enabled = true | validation | error | jira, config, validation, integration, toml |
| jira.api_token must be set (or JIRA_API_TOKEN env var) when | validation | error | jira, config, validation, credentials, env-var, secrets |
| jira.allowed_actions contains unknown action: '{}'. Valid: g | validation | error | jira, config, validation, enum, allowlist |
| security.nevis: {msg} | validation | error | nevis, security, config, validation, iam |
| Failed to atomically replace config file: {e} | exception | error | config, filesystem, atomic-write, rename, io |
| Qdrant scroll failed ({status}): {text} | exception | error | qdrant, migration, vector-db, http, database |
| Qdrant set payload failed ({status}): {text} | exception | error | qdrant, migration, vector-db, http, database |
| The '{}' backend does not support automatic key generation. | exception | error | secrets, key-management, provisioning, quickstart, trait-default |
| Key file path is a symlink — refusing to write | exception | error | secrets, key-management, symlink, security, filesystem |
| Cannot determine current username; ACL hardening is required | exception | error | windows, acl, secrets, key-management, environment, permissions |
| Failed to take ownership of key file via takeown; cannot est | exception | error | windows, acl, takeown, secrets, key-management, permissions |
| Could not take ownership of key file; cannot establish restr | exception | error | windows, acl, takeown, secrets, command-not-found, permissions |
| Failed to set restrictive ACL via icacls; key file permissio | exception | error | windows, acl, icacls, secrets, key-management, permissions |
| Could not set key file permissions; key file permissions may | exception | error | windows, acl, icacls, secrets, command-not-found, permissions |
| Hex string has odd length | exception | error | secrets, hex, encoding, corruption, key-management |
| Hex string contains non-ASCII characters | exception | error | secrets, hex, encoding, ascii, corruption |
| unknown eval mode '{other}' (expected 'replay' or 'live') | exception | error | eval, cli, argument-parsing, zeroclaw-eval |
| TraceLlmProvider({}): turn {turn_index} scripted {leftover} | exception | error | eval, trace-replay, test-fixture, zeroclaw-eval |
| TraceLlmProvider({}): turn {current} requested more LLM resp | exception | error | eval, trace-replay, test-fixture, zeroclaw-eval |
| live mode is not implemented yet (Phase 0 supports --mode re | exception | error | eval, not-implemented, phase-0, zeroclaw-eval |
| no *.json trace fixtures found in {} | exception | error | eval, test-fixture, empty-input, zeroclaw-eval |
| needs_quickstart: gateway booted without a working model_pro | exception | error | gateway, configuration, quickstart, model-provider |
| no certificates found in {path} | exception | error | tls, pem, certificate, rustls, gateway |
| update --check failed: {} | exception | warning | version-check, subprocess, self-update, gateway |
| HTTP {} downloading datasheet from {url} | exception | error | hardware, datasheet, http, download |
| ping handshake failed after reconnect on {port_path} — firmw | exception | error | hardware, serial, firmware, reconnect |
| manifest missing [tool] name | exception | error | hardware, plugin, manifest, toml, loader |
| manifest missing [tool] description | exception | error | hardware, plugin, manifest, toml, loader |
| manifest missing [exec] binary | exception | error | hardware, plugin, manifest, toml, loader |
| manifest exec binary not found: {} | exception | error | hardware, plugin, manifest, file-not-found, loader |
| manifest exec binary escapes plugin directory: {} is not und | exception | error | hardware, plugin, manifest, security, path-traversal, loader |
| manifest exec binary is not a regular file: {} | exception | error | hardware, plugin, manifest, invalid-file-type, loader |
| Failed to install arduino:avr core | exception | error | arduino-cli, avr-core, hardware-flashing, subprocess-exit-code |
| Compile failed: {} | exception | error | arduino-cli, compilation, avrdude, hardware-flashing |
| Upload failed: {} Ensure the board is connected and the por | exception | error | arduino, upload, avrdude, serial-port, hardware-flashing |
| probe-rs not found. Install it: cargo install probe-rs-too | exception | error | probe-rs, nucleo, toolchain, path, hardware-flashing |
| Nucleo firmware not found at {}. Run from zeroclaw repo root | exception | error | nucleo, compile-time-path, cargo-manifest-dir, missing-directory |
| Build failed:\n{} | exception | error | cargo, cross-compilation, rustup-target, nucleo, embassy |
| Built binary not found at {} | exception | error | cargo, target-dir, build-artifact, nucleo |
| Flash failed:\n{}\n\nEnsure Nucleo is connected via USB. The | exception | error | probe-rs, st-link, stm32, usb, hardware-flashing |
| Serial response skip limit exceeded (maximum {MAX_SKIPPED_RE | exception | error | serial, protocol-desync, unsolicited-frames, embedded, skip-limit |
| Serial path not allowed: {}. Allowed: {} | validation | error | serial, allowlist, device-path, config, security |
| state must be 'on' or 'off' | validation | warning | input-validation, smartroom, enum-values, gpio |
| Bridge app not found at {}. Run from zeroclaw repo root. | exception | error | uno-q, bridge, compile-time-path, missing-directory |
| Failed to create ArduinoApps dir on Uno Q | exception | error | ssh, uno-q, remote-deploy, authentication |
| Failed to copy Bridge app | exception | error | scp, uno-q, file-transfer, remote-deploy, disk-full |
| Failed to start Bridge app. Ensure arduino-app-cli is instal | exception | error | uno-q, arduino-app-cli, remote-deploy, service-start |
| Uno Q host must contain at most one '@' | validation | warning | input-validation, ssh-target, uno-q |
| Invalid Uno Q SSH user: use only ASCII letters, digits, '.', | validation | warning | input-validation, ssh-user, command-injection-guard, uno-q |
| Invalid Uno Q host: use a DNS hostname or IPv4 address witho | validation | warning | input-validation, hostname, ssh-target, uno-q |
| failed to write args to plugin '{}' stdin: {} | exception | error | subprocess, plugin, stdin, pipe, io-error |
| duplicate tool name: plugin '{}' conflicts with an existing | validation | error | |
| Bundled UF2 is a placeholder — download the real MicroPython | exception | error | |
| UF2 at {} does not look like a valid UF2 file (magic mismatc | exception | error | |
| All copy methods failed. Run this command manually, then res | exception | error | |
| Invalid {label} entry(s): [{}]. Each entry must be a valid d | validation | error | |
| Invalid {label}: {} | validation | error | |
| NAT64 prefix is empty | validation | error | |
| prefix length /{len} is not one of the RFC 6052 lengths /32, | validation | error | |
| address '{address}' sets bits beyond /{len} | validation | error | |
| Invalid {label} entry(s): [{}]. Each entry must be an RFC 60 | validation | error | |
| Failed to resolve host '{host}' | exception | error | |
| Blocked host '{host}' resolved to {v6}, which the configured | exception | error | |
| Blocked host '{host}' resolved to non-global address {ip} | exception | error | |
| JSONL archive changed during filesystem handoff | exception | error | |
| Refusing to replace JSONL session created while {} was stage | exception | error | |
| Refusing ambiguous JSONL migration with both {} and {} | exception | error | |
| Refusing to replace existing migrated JSONL session {} | exception | error | |
| JSONL session {name} does not match its committed import rec | exception | error | |
| Refusing to import receipt-less JSONL session {name} over ex | exception | error | |
| JSONL session {name} contains no valid messages to import | exception | error | |
| Refusing incompatible migrated JSONL session {} | exception | error | |
| JSONL session {} reappeared during migration | exception | error | |
| Unknown secret '{}' | exception | error | |
| AgentScopedMemory refuses store_with_options_and_agent for f | exception | error | |
| AgentScopedMemory refuses store_with_agent for foreign agent | exception | error | |
| AgentScopedMemory refuses to forget cross-agent row: key att | exception | error | |
| AgentScopedMemory refuses to forget unattributed row: legacy | exception | error | |
| AgentScopedMemory refuses cross-agent forget_for_agent: boun | exception | error | |
| AgentScopedMemory refuses purge_namespace: cross-agent bulk | exception | error | rust, zeroclaw, memory, security, access-control, purge, agent-scoped |
| memory consolidation write denied by policy: {e} | exception | error | rust, zeroclaw, memory, consolidation, policy, read-only, quota |
| memory fact write denied by policy: {e} | exception | error | rust, zeroclaw, memory, consolidation, fact-extraction, policy, quota |
| Embedding API error {status}: {text} | exception | error | rust, zeroclaw, memory, embeddings, openai, http, api-key, rate-limit |
| unknown {}: {other} | exception | error | rust, zeroclaw, knowledge-graph, enum, parse, validation, schema-values |
| knowledge graph node limit reached ({}/{}) | exception | error | rust, zeroclaw, knowledge-graph, capacity, sqlite, limits |
| tag '{}' contains a comma, which is used as the tag separato | exception | error | rust, zeroclaw, knowledge-graph, tags, input-validation, delimiter |
| source node not found: {from_id} | exception | error | rust, zeroclaw, knowledge-graph, edges, referential-integrity, validation |
| target node not found: {to_id} | exception | error | rust, zeroclaw, knowledge-graph, edges, referential-integrity, validation |
| subgraph depth must be greater than 0 | exception | error | rust, zeroclaw, knowledge-graph, subgraph, argument-validation, off-by-one |
| memory backend 'postgres' requested but this build was compi | exception | error | postgres, feature-flag, build-config, rust, memory-backend |
| postgres backend requires storage config; call create_memory | exception | error | postgres, api-misuse, factory, storage-config |
| memory backend {:?} references a storage alias; construct me | exception | error | config, storage-alias, api-misuse, memory-backend |
| memory backend 'qdrant' requires a `[storage.qdrant.<alias>] | exception | error | qdrant, config, storage-alias, toplevel-config |
| memory backend 'postgres' requires a `[storage.postgres.<ali | exception | error | postgres, config, storage-alias, toplevel-config |
| memory backend 'none' disables persistence; choose sqlite, l | exception | error | migration, config, memory-backend, cli, import-export |
| {flag} = true requires memory.backend = "sqlite" (typed memo | exception | error | config, validation, sqlite, typed-memory, consolidation |
| {flag} = true requires every agent on the sqlite memory back | exception | error | config, validation, per-agent, typed-memory, consolidation |
| lucid command timed out after {}ms; failed to terminate and | exception | error | lucid, timeout, subprocess, process-cleanup, zombie |
| lucid command timed out after {}ms | exception | error | lucid, timeout, subprocess, recall |
| lucid command failed: {stderr} | exception | error | lucid, subprocess, stderr, external-cli, nonzero-exit |
| 'since' must be before 'until' | exception | error | validation, date-range, rfc3339, recall, lucid |
| 'since' must be before 'until' | exception | error | validation, date-range, rfc3339, recall, markdown |
| {field_name} must not be empty | exception | error | postgres, validation, identifier, sql, config |
| {field_name} must start with an ASCII letter or underscore; | exception | error | postgres, validation, identifier, naming, sql |
| {field_name} can only contain ASCII letters, numbers, and un | exception | error | postgres, validation, identifier, sanitization, sql-injection |
| cannot rename agent memory to `{to}`: an existing memory sto | exception | error | postgres, rename, conflict, agent-management, data-safety |
| Qdrant scroll failed ({status}): {text} | exception | error | qdrant, http, scroll, vector-db, agent-operations |
| Qdrant collection check failed ({status}): {text} | exception | error | qdrant, http, collection, initialization, vector-db |
| Qdrant connection failed: {e} | exception | error | qdrant, network, connection, initialization, vector-db |
| Qdrant collection creation failed ({status}): {text} | exception | error | qdrant, vector-database, http-status, rust, startup, configuration |
| Qdrant scroll failed during migration ({status}): {text} | exception | error | qdrant, scroll, pagination, migration, startup, rust |
| Qdrant set payload failed during migration ({status}): {text | exception | error | qdrant, set-payload, migration, write-conflict, rust |
| Qdrant delete failed ({status}): {text} | exception | error | qdrant, delete, http-status, rust |
| Qdrant search failed ({status}): {text} | exception | error | qdrant, vector-search, embedding-dimensions, http-status, rust |
| Qdrant set payload failed during agent rename ({status}): {t | exception | error | qdrant, set-payload, agent-rename, http-status, rust |
| Qdrant collection info failed ({status}): {text} | exception | error | qdrant, collection-info, count, http-status, rust |
| Qdrant requires non-zero dimensional embeddings | exception | error | qdrant, embeddings, configuration, rust, write-path |
| Qdrant upsert failed ({status}): {text} | exception | error | qdrant, upsert, embedding-dimensions, http-status, rust |
| invalid memory.policy.threat_scan value {other:?}; expected | exception | error | configuration, policy, threat-scan, validation, rust |
| invalid memory.policy.threat_scan_on_hit value {other:?}; ex | exception | error | configuration, policy, threat-scan, validation, rust |
| invalid memory.policy.redact_categories value(s): {}; expect | exception | error | configuration, policy, redaction, validation, rust |
| memory write blocked by content scan: {kinds} | exception | error | content-scanning, policy, threat-scan, security, rust |
| memory write denied by policy: {error} | exception | error | policy, authorization, namespaces, write-path, rust |
| SQLite connection open timed out after {} seconds | exception | error | sqlite, database-lock, timeout, filesystem, rust |
| SQLite open thread exited unexpectedly | exception | error | sqlite, thread-panic, channel, runtime, rust |
| cannot rename agent memory to `{to}`: an existing memory sto | exception | error | sqlite, agent-rename, unique-constraint, data-safety, rust |
| plugin store/linker http mismatch: store HttpClient={store_h | exception | error | |
| plugin name must not be empty | exception | error | |
| plugin registry source must be name or name@version | exception | error | |
| channel plugin metadata changed while recreating an interrup | exception | error | |
| purge_namespace not supported by this memory backend | exception | error | |
| purge_session not supported by this memory backend | exception | error | |
| purge_session_for_agent not supported by this memory backend | exception | error | |
| purge_agent not supported by this memory backend | exception | error | |
| Email OAuth2 device-code start failed ({status}): {body} | exception | error | |
| Email OAuth2 device-code flow timed out before authorization | exception | error | |
| Email OAuth2 authorization was denied | exception | error | |
| Email OAuth2 device-code expired | exception | error | |
| Email OAuth2 device-code polling failed ({status}): {} | exception | error | |
| Email OAuth2 device-code polling failed ({status}): {text} | exception | error | |
| Email OAuth2 token request failed ({status}): {body} | exception | error | |
| Google OAuth error: {} - {} | exception | error | |
| Google OAuth token exchange failed ({}): {} | exception | error | |
| Google OAuth refresh error: {} - {} | exception | error | |
| Google OAuth refresh failed ({}): {} | exception | error | |
| Google device code error: {} - {} | exception | error | |
| Google device code request failed ({}): {} | exception | error | oauth, gemini, device-code, http-status, google, rust |
| Device code expired before authorization was completed | exception | error | oauth, device-code, gemini, timeout, expiry, rust |
| User denied authorization | exception | error | oauth, device-code, gemini, consent, access-denied, rust |
| Device code expired | exception | error | oauth, device-code, gemini, expiry, rust |
| OAuth state mismatch | exception | error | oauth, csrf, state-mismatch, loopback-callback, gemini, rust |
| No OAuth code provided | exception | error | oauth, user-input, stdin, authorization-code, rust |
| OAuth state mismatch: expected {expected}, got {actual} | exception | error | oauth, csrf, state-mismatch, paste-redirect, gemini, rust |
| Could not parse OAuth code from input | exception | error | oauth, user-input, authorization-code, parse, rust |
| Profile {profile_id} belongs to model_provider {}, not {} | exception | error | auth, profile-management, provider-mismatch, rust |
| OpenAI Codex auth profile is not OAuth-based: {profile_id} | exception | error | auth, oauth, openai-codex, profile, rust |
| OpenAI Codex auth profile is missing token set: {profile_id} | exception | error | auth, oauth, openai-codex, race-condition, profile, rust |
| OpenAI token refresh is in backoff for {remaining}s due to p | exception | warning | auth, oauth, openai-codex, backoff, rate-limit, rust |
| Gemini auth profile is not OAuth-based: {profile_id} | exception | error | auth, oauth, gemini, profile, rust |
| Gemini auth profile is missing token set: {profile_id} | exception | error | auth, oauth, gemini, race-condition, profile, rust |
| Gemini token refresh is in backoff for {remaining}s due to p | exception | warning | auth, oauth, gemini, backoff, rate-limit, rust |
| xAI auth profile is not OAuth-based: {profile_id} | exception | error | auth, oauth, xai, profile, rust |
| xAI auth profile is missing token set: {profile_id} | exception | error | auth, oauth, xai, race-condition, profile, rust |
| xAI token refresh is in backoff for {remaining}s due to prev | exception | warning | auth, oauth, xai, backoff, rate-limit, rust |
| Email OAuth2 profile is not OAuth-based: {profile_id} | exception | error | auth, oauth, email, imap, profile, rust |
| Email OAuth2 profile is missing token set: {profile_id} | exception | error | oauth2, email, auth-store, concurrency, race-condition |
| Email OAuth2 token refresh is in backoff for {remaining}s du | exception | warning | oauth2, email, backoff, rate-limit, transient |
| ModelProvider name cannot be empty | validation | warning | validation, config, model-provider, empty-string |
| Pending {} login is missing code verifier | exception | error | oauth2, pkce, pending-login, state-file, auth |
| `auth login` is not supported for this provider. Use `auth p | exception | warning | auth, cli, unsupported-operation, bearer-token |
| `auth paste-redirect` is not supported for this provider. On | exception | warning | auth, cli, unsupported-operation, oauth2 |
| `auth refresh` is not supported for this provider. Only Open | exception | warning | auth, cli, unsupported-operation, token-refresh |
| Pending login profile mismatch: pending={}, requested={} | exception | warning | auth, oauth2, profiles, openai, cli |
| `auth login --import` currently supports only --model-provid | exception | warning | auth, gemini, cli, unsupported-operation, import |
| OpenAI device-code start failed ({status}): {body} | exception | error | oauth2, device-code, openai, http-status, network |
| Device-code flow timed out before authorization completed | exception | warning | oauth2, device-code, openai, timeout, expired |
| OpenAI device-code authorization was denied | exception | warning | oauth2, device-code, openai, access-denied, consent |
| OpenAI device-code expired | exception | warning | oauth2, device-code, openai, expired |
| OpenAI device-code polling failed ({status}): {} | exception | error | oauth2, device-code, openai, http-status, invalid-grant |
| OpenAI device-code polling failed ({status}): {text} | exception | error | oauth2, device-code, openai, http-status, network, proxy |
| No OAuth code provided | exception | warning | oauth2, redirect-uri, validation, empty-string, cli |
| OpenAI OAuth error: {err} ({desc}) | exception | error | oauth2, redirect-uri, openai, consent, access-denied |
| OAuth state mismatch | exception | error | oauth, openai, csrf, state, loopback, rust |
| Missing OAuth state in callback | exception | error | oauth, openai, state, callback, rust |
| Missing OAuth code in callback | exception | error | oauth, openai, callback, authorization-code, rust |
| OpenAI OAuth token request failed ({status}): {body} | exception | error | oauth, openai, token-endpoint, http, rust |
| Auth profile not found: {profile_id} | exception | error | auth, profiles, store, configuration, rust |
| Unsupported auth profile schema version {} (max supported: { | exception | error | schema, versioning, auth, profiles, rust |
| Timed out waiting for auth profile lock at {} | exception | error | file-lock, concurrency, timeout, auth, rust |
| Unsupported auth profile kind: {other} | exception | error | auth, profiles, parsing, config, rust |
| xAI OAuth discovery failed ({status}): {body} | exception | error | oauth, xai, discovery, network, http, rust |
| xAI device-code start failed ({status}): {body} | exception | error | oauth, xai, device-code, http, rust |
| xAI device-code flow timed out before authorization complete | exception | error | oauth, xai, device-code, timeout, rust |
| xAI device-code authorization was denied | exception | warning | oauth, xai, device-code, consent, rust |
| xAI device-code expired | exception | error | oauth, xai, device-code, expiry, rust |
| xAI device-code polling failed ({status}): {} | exception | error | oauth, xai, device-code, polling, http, rust |
| xAI device-code polling failed ({status}): {text} | exception | error | oauth, xai, device-code, polling, proxy, http, rust |
| xAI OAuth token request failed ({status}): {} | exception | error | oauth, xai, token-endpoint, pkce, http, rust |
| xAI OAuth token request failed ({status}): {body} | exception | error | oauth, xai, token-endpoint, http, proxy, rust |
| No xAI OAuth code provided | exception | error | oauth, xai, input-validation, rust |
| {err}: {desc} | exception | warning | oauth, xai, callback, consent, rust |
| xAI OAuth state mismatch | exception | error | oauth, xai, csrf, state, rust |
| xAI OAuth callback missing code parameter | exception | error | oauth, xai, authorization-code, loopback, rust |
| xAI OAuth discovery returned non-HTTPS {label} | exception | error | oauth, xai, https, security, rust |
| xAI OAuth discovery returned untrusted {label}: {endpoint} | validation | error | oauth, xai, allowlist, security, rust |
| Invalid Azure OpenAI tool specification: unsupported tool ty | validation | error | azure-openai, tools, function-calling, validation, rust |
| unknown provider family {family:?} | validation | error | catalog, provider-family, config, rust |
| no public catalog for family {family:?} | exception | error | catalog, models-dev, network, rust |
| {} model list failed at {url}: HTTP {status} | http | error | openai-compatible, models, http, config, rust |
| live model listing is not supported for this model_provider | exception | warning | openai-compatible, models, capabilities, config, rust |
| {} API error ({status}): {sanitized} | http | error | openai-compatible, chat, api-error, http, rust |
| GitHub device authorization expired | exception | error | github, oauth, device-flow, copilot, rust |
| GitHub auth failed: {error} | exception | error | github, oauth, device-flow, copilot, rust |
| Timed out waiting for GitHub authorization | exception | error | github, oauth, device-flow, timeout, rust |
| Failed to get Copilot API key ({status}): {sanitized}. Ensur | http | error | github, copilot, subscription, api-error, rust |
| grok_cli does not accept api_key; use `grok login`, or expor | validation | error | grok-cli, config, factory, auth, rust |
| Gemini CLI OAuth refresh failed (HTTP {status}): {body} | http | error | gemini, oauth, refresh-token, google, rust |
| Gemini CLI OAuth token expired and no refresh_token availabl | exception | error | gemini, oauth, token-expired, google, rust |
| loadCodeAssist failed (HTTP {status}): {body} | http | error | gemini, oauth, gcp, code-assist, rust |
| Gemini API error ({status}): {error_text} | http | error | gemini, api-error, http, google, rust |
| Gemini API error: {} | exception | error | rust, zeroclaw, gemini, in-band-error, api-key-restriction, content-filter |
| Gemini CLI model_provider received non-finite temperature va | validation | error | rust, zeroclaw, gemini-cli, temperature, nan, validation |
| temperature unsupported by Gemini CLI: {temperature}. Suppor | validation | error | rust, zeroclaw, gemini-cli, temperature, validation |
| Gemini CLI exited with non-zero status {code}. Check that Ge | exception | error | rust, zeroclaw, gemini-cli, process-exit, authentication |
| GLM API key not set or invalid format. Expected 'id.secret'. | validation | error | rust, zeroclaw, glm, api-key, missing-env-var, configuration |
| GLM API error: {error} | http | error | rust, zeroclaw, glm, http-status, api-error, jwt |
| grok_cli requires an explicit working_directory for the ACP | validation | error | rust, zeroclaw, grok-cli, acp, working-directory, configuration |
| grok_cli working_directory must be an absolute path | validation | error | rust, zeroclaw, grok-cli, path, absolute-path, configuration |
| grok_cli working_directory must identify a directory | validation | error | rust, zeroclaw, grok-cli, path, filesystem, configuration |
| grok_cli max_acp_stdout_bytes must be between {} and {} byte | validation | error | rust, zeroclaw, grok-cli, acp, limits, configuration |
| grok_cli env_passthrough entry `{name}` is invalid; expected | validation | error | rust, zeroclaw, grok-cli, environment-variables, validation, configuration |
| grok_cli env_passthrough entry `{name}` is provider-owned (` | validation | error | rust, zeroclaw, grok-cli, environment-variables, reserved-names, configuration |
| grok_cli extra_args accepts long flags only and must not inc | validation | error | rust, zeroclaw, grok-cli, cli-arguments, validation, configuration |
| grok_cli extra_args must not include reserved flag `{flag}`. | validation | error | rust, zeroclaw, grok-cli, cli-arguments, reserved-flags, configuration |
| grok_cli extra_args option `{flag}` is missing its value and | validation | error | rust, zeroclaw, grok-cli, cli-arguments, missing-value, configuration |
| grok_cli extra_args option `{flag}` must use `--flag=value` | validation | error | grok-cli, extra-args, cli-flags, argv, validation |
| grok_cli extra_args option `{flag}` must use `--flag=value` | validation | error | grok-cli, extra-args, cli-flags, validation, invariant |
| Grok CLI model provider received a non-finite temperature va | validation | error | grok-cli, temperature, nan, infinity, validation |
| temperature unsupported by Grok CLI model provider: {tempera | validation | error | grok-cli, temperature, sampling, validation |
| KiloCLI model_provider received non-finite temperature value | validation | error | kilocli, temperature, nan, infinity, validation |
| temperature unsupported by KiloCLI: {temperature}. Supported | validation | error | kilocli, temperature, sampling, validation |
| KiloCLI exited with non-zero status {code}. Check that KiloC | exception | error | kilocli, cli, process-exit, authentication, stderr |
| OAuth refresh failed (HTTP {status}): {detail} | http | error | qwen, oauth, refresh-token, http-status, authentication |
| OAuth refresh failed: {detail} | http | error | qwen, oauth, invalid-grant, authentication |
| MiniMax OAuth refresh failed (HTTP {status}): {detail} | http | error | minimax, oauth, refresh-token, http-status, authentication |
| MiniMax OAuth refresh failed: {detail} | http | error | minimax, oauth, refresh-token, api-status, authentication |
| MiniMax OAuth refresh response missing access_token | exception | error | minimax, oauth, refresh-token, missing-field, api-contract |
| Custom model_provider `{prefix}:<url>` requires a URL beginn | validation | error | custom-provider, url, scheme, validation |
| API key prefix mismatch: key "{visible}..." looks like a {li | validation | error | api-key, credentials, prefix-mismatch, configuration |
| Fallback provider `{raw}` resolved to `{resolved}` ({profile | validation | error | fallback, credentials, configuration, startup |
| Fallback provider `{raw}` resolved to `{resolved}` ({profile | exception | error | fallback, provider-construction, configuration, startup |
| Routed model_provider `{name}` failed to initialize: {e} | exception | error | router, provider-construction, configuration, startup |
| Model '{}' requested cloud routing, but Ollama endpoint is l | validation | error | ollama, cloud-routing, endpoint, validation |
| Model '{}' requested cloud routing, but no API key is config | validation | error | ollama, cloud-routing, api-key, authentication |
| Ollama returned non-prompt-guided tools payload while native | exception | error | ollama, tools, prompt-guided, invariant, internal |
| Ollama API error ({}): {}. Is Ollama running? (brew install | http | error | ollama, http-status, llm-provider, local-models, network |
| Failed to parse Ollama response: {e} | exception | error | ollama, json, deserialization, llm-provider, schema-drift |
| Invalid OpenAI tool specification: unsupported tool type '{} | validation | error | openai, tools, validation, llm-provider, json-schema |
| OpenAI Codex endpoint override cannot be empty | validation | error | openai-codex, config, url, validation, endpoint-override |
| OpenAI Codex endpoint override must use http:// or https:// | validation | error | openai-codex, url, scheme, validation, endpoint-override |
| OpenRouter catalog has no entries under vendor prefix {vendo | validation | error | openrouter, model-catalog, validation, vendor-prefix |
| Failed to list Telnyx models: {} | http | error | telnyx, http-status, llm-provider, authentication, network |
| Telnyx API error ({}): {} | http | error | telnyx, http-status, llm-provider, chat, network |
| agents.{agent_alias}.model_provider = "{agent_ref}" does not | validation | error | config, agents, model-provider, validation, v3-schema |
| agents.{agent_alias}.model_provider is empty — set it to a c | validation | error | config, agents, model-provider, validation, missing-value |
| agents.{agent_alias}.model_provider resolves to a model_prov | validation | error | config, agents, model-provider, missing-value, validation |
| no model configured for agent {agent_alias}: [providers.mode | validation | error | config, agents, model, cli, missing-value |
| agents.{agent_alias}.model_provider = "{agent_ref}" does not | validation | error | config, agents, model-provider, validation, gateway |
| agents.{agent_alias}.model_provider is empty — set it to a c | validation | error | config, agents, model-provider, missing-value, gateway |
| agents.{agent_alias}.model_provider resolves to a model_prov | validation | error | config, agents, model, missing-value, gateway |
| Agent loop aborted: repeated prompt-required tool call '{too | exception | error | agent-loop, approval, shell, tools, infinite-loop-guard |
| Agent exceeded maximum tool iterations ({max_iterations}) | exception | error | agent-loop, max-iterations, tools, resource-limits |
| Final summary LLM call timed out after {step_secs}s (step_ti | exception | error | agent-loop, timeout, pacing, llm-provider |
| LLM call cancelled by hook: {reason} | exception | error | hooks, policy-cancellation, llm-dispatch, agent-loop |
| Budget exceeded: ${:.4} of ${:.2} {:?} limit. Cannot make fu | exception | error | budget, cost-limit, provider-spend, agent-loop |
| Agent loop aborted by loop detector: {msg} | exception | error | loop-detector, circuit-breaker, repetitive-tool-calls, agent-loop |
| Agent loop aborted: identical tool output detected {} consec | exception | error | loop-detection, identical-output, runaway-loop, pacing-config |
| refusing to dispatch to provider: prepared history has no us | exception | error | chat-history, turn-order, context-trimming, fail-closed, provider-validation |
| No input received from stdin | exception | error | stdin, eof, cli, interactive-prompt |
| effective cost limit must be a non-negative finite value | exception | error | validation, f64, nan, infinity, goal-store, sqlite |
| goal task {task_id} has no canonical TaskKind::Goal row and | exception | error | goal-store, task-not-found, fail-fast, sqlite, lifecycle |
| goal task {task_id} has no goal extension row | exception | error | goal-store, update-noop, missing-row, sqlite |
| goal task {task_id} is terminal or missing | exception | error | goal-store, state-transition, terminal-state, pause, sqlite |
| unsupported delivery mode: {} | exception | error | cron, delivery-config, enum-validation, config |
| delivery.channel is required for announce mode | exception | error | cron, delivery-config, required-field, announce-mode |
| delivery.to is required for announce mode | exception | error | |
| delay must not be empty | exception | error | |
| unsupported delay unit '{unit}', use s/m/h/d | exception | error | |
| Invalid schedule: every_ms must be > 0 | exception | error | |
| Invalid schedule: 'at' must be in the future (now_utc={}, no | exception | error | |
| Invalid cron expression: {expression} (expected 5, 6, or 7 f | exception | error | |
| Invalid weekday value: {val} (expected 0-7) | exception | error | |
| Invalid weekday step: 0 | exception | error | |
| agent_alias is required; cron jobs must name an owning agent | exception | error | |
| Cron job '{job_id}' not found | exception | error | |
| No cron job found with id or name '{id_or_name}' | exception | error | |
| Ambiguous name '{id_or_name}': matched {n} jobs — use the jo | exception | error | |
| Cron job '{id}' not found | exception | error | |
| Cron job '{job_id}': delivery is owned by [cron.{job_id}].de | exception | error | |
| Cron job '{job_id}': shell_output_format is owned by config. | exception | error | |
| Cron job '{job_id}': shell_output_format is shell-only and c | exception | error | |
| Unknown cron shell_output_format value: {other:?} | exception | error | |
| Declarative cron job has empty id | validation | error | cron, config-validation, toml |
| Declarative cron job '{id}': shell job requires a non-empty | validation | error | cron, config-validation, shell |
| Declarative cron job '{id}': agent job requires a non-empty | validation | error | cron, config-validation, agent |
| Declarative cron job '{id}': shell_output_format is shell-on | validation | error | cron, config-validation, agent, shell-output |
| Declarative cron job '{id}': invalid job_type '{other}', exp | validation | error | cron, config-validation, job-type |
| Cron job '{}' not found | exception | warning | cron, sqlite, race-condition |
| heartbeat worker requires `[heartbeat] agent = "<alias>"` na | validation | error | heartbeat, config-validation, agents |
| [heartbeat] agent = {agent_alias:?} is not configured ([agen | validation | error | heartbeat, agents, config-reference |
| heartbeat.to is required when heartbeat.target is set | validation | error | heartbeat, channels, config-validation |
| heartbeat.target is required when heartbeat.to is set | validation | error | heartbeat, channels, config-validation |
| unsupported heartbeat.target channel: {channel} | validation | error | heartbeat, channels, config-validation |
| heartbeat.target is set to {channel} but channels.{channel} | validation | error | heartbeat, channels, config-reference |
| heartbeat.target is set to {channel} but {channel} is an inp | validation | error | heartbeat, channels, input-only |
| No configured model_providers to probe — run `zeroclaw quick | exception | error | doctor, model-providers, config |
| Model probe failed for target model_provider | exception | error | doctor, model-providers, network, api-key |
| Model provider '{model_provider}' not found in config | exception | error | doctor, model-providers, config-reference |
| No configured model_providers — run `zeroclaw quickstart` to | exception | error | doctor, model-providers, config |
| No configured model verified for target model_provider | exception | error | doctor, model-providers, network, verification |
| Identity format is set to 'aieos' but neither aieos_path nor | validation | error | rust, zeroclaw, identity, config, aieos, startup |
| AIEOS payload must be a JSON object | validation | error | rust, zeroclaw, json, identity, validation, serde |
| Unknown integration: {name}. Check README for supported inte | exception | error | rust, zeroclaw, cli, integrations, registry, lookup |
| OpenClaw workspace not found at {}. Pass --source <path> if | exception | error | rust, zeroclaw, migration, openclaw, filesystem, cli |
| Source workspace matches current ZeroClaw workspace; refusin | exception | error | rust, zeroclaw, migration, openclaw, data-safety, self-guard |
| OpenClaw memories table found but no content-like column was | exception | error | rust, zeroclaw, migration, sqlite, schema, openclaw |
| Unable to allocate non-conflicting key for '{base}' | exception | error | rust, zeroclaw, migration, memory, key-conflict |
| Request timestamp too old or too far in future | validation | error | rust, zeroclaw, security, hmac, replay-protection, clock-skew, nodes |
| Node request failed: {} {} | http | error | rust, zeroclaw, http, nodes, distributed, api-client |
| runtime.wasm.memory_limit_mb must be > 0 | validation | error | rust, zeroclaw, wasm, config, validation, limits |
| runtime.wasm.memory_limit_mb of {} exceeds the 4 GB safety l | validation | error | rust, zeroclaw, wasm, config, limits, validation |
| runtime.wasm.tools_dir cannot be empty | validation | error | rust, zeroclaw, wasm, config, validation, paths |
| runtime.wasm.tools_dir must not contain '..' path traversal | validation | error | rust, zeroclaw, wasm, security, path-traversal, config |
| WASM module not found: {} (looked in {}) | exception | error | rust, zeroclaw, wasm, filesystem, module-not-found, paths |
| WASM module {} is {} MB — exceeds 50 MB safety limit | exception | error | rust, zeroclaw, wasm, file-size, limits, build-artifacts |
| WASM execution error in '{module_name}': {e} | exception | error | rust, zeroclaw, wasm, wasmer, trap, runtime-crash |
| WASM runtime is not available in this build. Rebuild with `c | exception | error | rust, zeroclaw, wasm, cargo-features, build-configuration |
| WASM runtime does not support shell commands. Use `execute_m | exception | error | rust, zeroclaw, wasm, sandbox, shell, unsupported-operation |
| RPC elicitation/create failed: {} ({}) | exception | error | rust, zeroclaw, rpc, approvals, elicitation, client-compat |
| RPC elicitation/create timed out after {timeout:?} | exception | warning | rust, zeroclaw, timeout, approvals, rpc, elicitation |
| RPC elicitation/create (multi) failed: {} ({}) | exception | error | rpc, jsonrpc, elicitation, approval, multi-select |
| RPC elicitation/create (multi) timed out after {timeout:?} | exception | error | timeout, rpc, elicitation, approval |
| local IPC endpoint lock directory {} is owned by uid {}; it | validation | error | unix, permissions, ownership, ipc, security, filesystem, startup |
| local IPC endpoint lock directory {} is writable by other us | validation | error | unix, permissions, sticky-bit, ipc, security, filesystem |
| local IPC endpoint lock {} is not a regular file; remove it | validation | error | unix, ipc, filesystem, lock-file, startup |
| local IPC endpoint lock {} is owned by uid {}, not the daemo | validation | error | unix, permissions, ownership, ipc, lock-file, startup |
| local IPC endpoint lock {} is accessible to other users (mod | validation | error | unix, permissions, ipc, lock-file, security, startup |
| local IPC endpoint lock {} was unlinked while being opened | validation | error | unix, ipc, lock-file, race-condition, filesystem, startup |
| local IPC endpoint lock {} was replaced while being acquired | validation | error | unix, ipc, lock-file, race-condition, startup |
| ZEROCLAW_AUDIT_SIGNING_KEY must be 32 bytes (64 hex chars), | validation | error | audit, hmac, signing-key, environment-variable, config, security |
| sequence gap at line {}: expected {}, got {} | validation | critical | audit, integrity, hash-chain, tamper-detection, verification |
| prev_hash mismatch at line {} (sequence {}): expected {}, go | validation | critical | audit, integrity, hash-chain, tamper-detection, verification |
| entry_hash mismatch at line {} (sequence {}): expected {}, g | validation | critical | audit, integrity, hash-chain, tamper-detection, verification |
| signature verification failed at line {} (sequence {}): sign | validation | critical | audit, hmac, signature, integrity, tamper-detection, verification |
| Invalid OTP code; estop resume denied | validation | error | otp, mfa, estop, security, authentication |
| Tool name must not be empty | validation | warning | estop, validation, tool-name, input-validation |
| Tool name '{raw}' contains invalid characters | validation | warning | estop, validation, tool-name, input-validation |
| IAM policy: duplicate role mapping for normalized key '{}' ( | validation | error | iam, config, duplicate-key, policy, authorization |
| invalid token_validation mode '{other}': expected 'local' or | validation | error | nevis, auth, config, validation, enum-parse |
| Nevis token_validation is 'local' but no jwks_url is configu | validation | error | nevis, auth, config, jwks, oauth2 |
| empty bearer token | http | error | auth, nevis, bearer-token, input-validation, rust |
| MFA is required but user '{}' has not completed MFA verifica | http | error | auth, nevis, mfa, policy, rust |
| Nevis session expired | http | error | auth, nevis, session-expiry, clock-skew, rust |
| Nevis introspection returned HTTP {} | http | error | auth, nevis, oauth, introspection, http-status, rust |
| Token is not active (revoked or expired) | http | error | auth, nevis, oauth, token-revocation, rust |
| Invalid JWT structure: expected 3 dot-separated parts | http | error | auth, nevis, jwt, input-validation, rust |
| Local JWKS token validation is not yet implemented. Set toke | http | error | auth, nevis, jwks, not-implemented, config, rust |
| empty session token | http | error | auth, nevis, session, cookies, input-validation, rust |
| Nevis session validation returned HTTP {} | http | error | auth, nevis, oauth, userinfo, http-status, rust |
| Userinfo response has missing or empty `sub` claim | http | error | auth, nevis, oidc, claims, rust |
| Nevis health check failed: HTTP {} | http | warning | nevis, health-check, oauth, http-status, rust |
| OTP secret is empty | validation | error | otp, totp, base32, config, rust |
| OTP secret did not decode to any bytes | validation | error | otp, totp, base32, config, rust |
| findings[{}].cvss_score must be between 0.0 and 10.0, got {} | validation | error | security, vulnerability, cvss, json-validation, rust |
| No credentials found for user '{user_id}' | exception | error | webauthn, credentials, not-found, rust |
| Unable to extract public key from attestation object ({} byt | validation | error | webauthn, attestation, cbor, registration, rust |
| Unsupported COSE key format (expected uncompressed P-256, go | validation | error | webauthn, cose, p-256, cryptography, rust |
| the OpenRC log writer is only supported on Linux | exception | error | service, openrc, platform-support, linux, rust |
| the launchd daemon runner is only supported on macOS | exception | error | service, launchd, platform-support, macos, rust |
| daemon child exited with status {status} | exception | error | macos, launchd, daemon, service, exit-code |
| Unknown init system: '{}'. Supported: auto, systemd, openrc | validation | error | cli, argument-parsing, init-system, validation |
| Could not detect init system. Supported: systemd, OpenRC. Us | exception | error | linux, systemd, openrc, environment-detection, container |
| Linux service {action} only manages the default zeroclaw ser | validation | error | linux, systemd, service, named-instance, config-directory |
| Service management is supported on macOS and Linux only | exception | error | platform-support, bsd, service, install |
| Service log viewing is supported on macOS, Linux, and Window | exception | error | platform-support, bsd, service, logs |
| No log files found in {}. Is the service installed? | exception | warning | macos, logs, service, file-not-found |
| tail exited with non-zero status | exception | error | macos, logs, tail, follow, subprocess |
| journalctl exited with non-zero status | exception | error | linux, systemd, journalctl, logs, subprocess |
| No log files found at {}. Is the service installed? | exception | warning | linux, openrc, logs, service, file-not-found |
| PowerShell Get-Content exited with non-zero status | exception | error | windows, powershell, logs, follow, subprocess |
| User 'zeroclaw' exists but has unexpected UID {} (expected s | validation | error | |
| User 'zeroclaw' exists but has unexpected shell '{}'. Expect | validation | error | |
| Failed to create zeroclaw group: {} | exception | error | |
| Failed to create zeroclaw user: {} | exception | error | |
| Failed to change ownership of {} to zeroclaw:zeroclaw: {} | exception | error | |
| Failed to recursively change ownership of {} to zeroclaw:zer | exception | error | |
| OpenRC runtime user 'zeroclaw' cannot write {} ({details}). | exception | error | |
| OpenRC service installation requires root privileges. Please | validation | error | |
| OpenRC service executable path contains unsupported shell ch | validation | error | |
| Command failed: {} | exception | error | |
| Skill name is empty or only dots after sanitization | validation | error | |
| Skill name '{}' is unsafe as a path component | validation | error | |
| Skill source does not exist: {} | exception | error | |
| Skill source must be a directory: {} | validation | error | |
| Open-skill markdown not found: {} | exception | error | |
| Open-skill markdown escapes repository root: {} | validation | error | |
| reflected SKILL.md has an empty body | validation | error | |
| Skill file not found: {} | exception | error | |
| Validation failed after write: {e} | validation | error | |
| Skill content is empty | validation | error | skills, skill-improver, validation, empty-input |
| Skill content is missing YAML front-matter (expected `---` d | validation | error | skills, skill-improver, yaml, front-matter, validation |
| Skill front-matter missing required `name` field | validation | error | skills, skill-improver, yaml, front-matter, validation |
| Unable to determine installed skill directory after clone (n | exception | error | skills, install, git-clone, filesystem |
| Unable to determine installed skill directory after clone (m | exception | error | skills, install, git-clone, concurrency |
| Skill security audit failed: {} | exception | error | skills, security, audit, install, allow-scripts |
| Refusing to copy symlinked skill source path: {} | validation | error | skills, install, symlink, security |
| Skill source must be a directory: {} | validation | error | skills, install, filesystem, validation |
| Refusing to copy symlink within skill source: {} | validation | error | skills, install, symlink, security |
| Source path does not exist: {source} | exception | error | skills, install, path, filesystem |
| Destination skill already exists: {} | validation | error | skills, install, conflict, filesystem |
| Git clone failed: {stderr} | exception | error | skills, install, git, network |
| failed to clone skills registry: {stderr} | exception | error | skills, registry, git, network |
| invalid --skill name '{$skill}': use a bare skill name (lett | validation | error | skills, catalog, validation, input-format |
| skill '{$skill}' not found in {$url}: no skills/ directory, | exception | error | skills, catalog, registry, not-found |
| skill catalog {$url} has a symlinked skills/ directory; refu | validation | error | skills, catalog, security, symlink |
| skill catalog {$url} has a skills/ directory that resolves o | validation | error | skills, catalog, security, path-traversal |
| skill '{$skill}' not found in {$url}. Available skills: {$av | exception | error | skills, catalog, registry, not-found, typo |
| skill '{$skill}' in {$url} is a symlink; catalog skills must | validation | error | skills, catalog, install, symlink, security, path-traversal |
| skill '{$skill}' in {$url} resolves outside the cloned catal | validation | error | skills, catalog, install, path-traversal, security, input-validation |
| skill '{source}' not found in the registry and no skills are | exception | error | skills, registry, not-found, clone, cache |
| skill '{source}' not found in the registry. Available skills | exception | error | skills, registry, not-found, typo |
| registry '{registry_name}' uses unsupported kind '{}'; only | validation | error | config, registry, skills, unsupported-value, git |
| skill '{skill_name}' not found in registry '{registry_name}' | exception | error | skills, registry, not-found, clone, config |
| skill '{skill_name}' not found in registry '{registry_name}' | exception | error | skills, registry, not-found, typo |
| cannot record checkpoint approval vote for run {run_id}: its | exception | warning | sop, approval, checkpoint, quorum, transient, retry, durability |
| run {run_id} is parked at an approval gate; amend/revise app | validation | error | sop, approval, broker, decision, state-machine, fail-closed |
| cannot record approval vote for run {run_id}: its parked sna | exception | warning | sop, approval, broker, quorum, transient, retry, durability |
| approval route '{route}' is not 'channel:recipient' (e.g. 'd | validation | error | config, approval, routing, channel, format, validation |
| approval route channel '{channel_key}' is not a configured c | validation | error | config, approval, routing, channel, not-configured |
| approval route channel '{channel_key}' does not support outb | validation | error | config, approval, routing, channel, inbound-only, delivery |
| wait capability duration exceeds {MAX_WAIT_MS}ms | validation | error | sop, capability, wait, timeout, limit, validation |
| capability '{}' requires authored `with` configuration to be | validation | error | sop, capability, config, validation, schema, authoring |
| Cannot start SOP '{}': cooldown or concurrency limit reached | exception | error | sop, admission, concurrency, cooldown, backpressure, rate-limit |
| SOP '{sop_name}' not started: coalesced into in-flight run { | exception | info | sop, admission, coalesce, dedup, concurrency |
| SOP '{sop_name}' not started: {reason} | exception | warning | sop, admission, backpressure, concurrency, cooldown, defer, drop |
| SOP '{}' has no steps defined | validation | error | |
| Run {run_id} is paused at a {} gate; resolve the gate throug | exception | error | |
| Run {run_id} is pending at gated step {}; wait for pending a | exception | error | |
| Active run not found: {run_id} | exception | error | |
| Run {run_id} is not paused at a checkpoint (status: {status} | exception | error | |
| Run {run_id} cannot resume: its parked checkpoint snapshot i | exception | error | |
| Run {run_id} checkpoint input is not a JSON object; cannot a | exception | error | |
| Run {run_id} checkpoint input is not a JSON object; there is | exception | error | |
| Run {run_id} has reached this gate's revision limit ({MAX_GA | exception | error | |
| Run {run_id} has no llm.generate predecessor step to re-run; | exception | error | |
| Run {run_id} revised draft failed step {pred_number}'s outpu | exception | error | |
| Run {run_id} re-draft failed (previous draft kept): {} | exception | error | |
| Run {run_id} re-draft failed (previous draft kept): {e} | exception | error | |
| Run {run_id} is not paused at a checkpoint (status: {}) | exception | error | |
| Run {run_id} cannot re-draft: its parked checkpoint snapshot | exception | error | |
| checkpoint edit and revise decisions must resolve through th | exception | error | |
| Run {run_id} cannot resolve: its parked checkpoint snapshot | exception | error | |
| checkpoint revise decisions use the revision persistence pat | exception | error | |
| SOP '{}' is not in deterministic mode (mode: {}) | exception | error | sop, execution-mode, deterministic |
| Run {} is not paused at checkpoint (status: {}) | exception | error | sop, checkpoint, resume, run-status |
| Active run not found: {} | exception | error | sop, run, not-found, resume |
| Run {} cannot resume: its parked checkpoint snapshot is not | exception | error | sop, checkpoint, resume, persistence, transient |
| invalid SOP name '{name}': must be a single path component ( | validation | error | sop, name, path-traversal, validation, security |
| SOP '{name}' not found | exception | error | sop, delete, not-found |
| SOP '{}' already exists | exception | error | sop, create, already-exists, conflict |
| SOP rejected: {} | validation | error | sop, validation, authoring, strict |
| proposal rejected: {reason} | validation | error | procedural-memory, proposal, secret-detection, security |
| only completed SOP runs can be captured | validation | error | procedural-memory, capture, run-status |
| completed run has no step results to distill | validation | error | procedural-memory, capture, empty-results |
| failed step output is not captured into procedural memory | validation | error | procedural-memory, capture, failed-steps |
| proposal {} is {:?}, not pending | validation | error | procedural-memory, proposal, apply, status |
| proposal {} is stale; target SOP now exists | validation | error | procedural-memory, proposal, stale, conflict |
| proposal {} is stale; inspect and re-propose | validation | error | procedural-memory, proposal, stale, hash-mismatch |
| proposal {} quarantined: {reason} | validation | error | procedural-memory, proposal, quarantine, secret-detection |
| candidate SOP did not validate as exactly one loadable SOP | validation | error | sop, toml, validation, procedural-memory, zeroclaw |
| candidate manifest name '{}' does not match proposal target | validation | error | sop, toml, naming, validation, procedural-memory |
| candidate SOP has no parsed steps | validation | error | sop, markdown, validation, procedural-memory |
| SOP name does not contain a safe path component | validation | error | sop, slug, path-safety, validation, procedural-memory |
| target SOP directory '{}' escapes SOPs root | validation | error | sop, path-traversal, symlink, security, procedural-memory |
| unsafe SOP path component '{}' | validation | error | sop, path-safety, symlink, security, config |
| cannot resolve SOP path '{}' | validation | error | sop, path-safety, config, validation |
| unsafe SOP path component | validation | error | sop, slug, path-traversal, security, validation |
| {field} cannot be empty | validation | error | sop, validation, required-field, procedural-memory |
| Rust-native browser backend is enabled but WebDriver endpoin | exception | error | |
| browser.backend='computer_use' but sidecar endpoint is unrea | exception | error | |
| browser.backend='auto' found no usable backend (agent-browse | exception | error | |
| browser.backend='auto' found no usable backend (agent-browse | exception | error | |
| browser.backend='auto' needs agent-browser CLI, browser-nati | exception | error | |
| browser.backend='auto' needs agent-browser CLI, browser-nati | exception | error | |
| URL cannot be empty | validation | error | |
| file:// URLs are not allowed in browser automation | validation | error | |
| Only http:// and https:// URLs are allowed | validation | error | |
| URL userinfo is not allowed | validation | error | |
| Browser tool enabled but no allowed_domains configured. Add | validation | error | |
| Blocked local/private host: {host} | validation | error | |
| Host '{host}' not in browser.allowed_domains | validation | error | |
| Rust-native browser backend is not compiled. Rebuild with -- | exception | error | |
| '{key}' must be >= 0 | validation | error | |
| Configured coordinate limit for '{key}' must be >= 0 | validation | error | |
| '{key}'={value} exceeds configured limit {limit} | validation | error | |
| Screenshot path '{ $path }' is not in the workspace allowlis | validation | error | |
| Screenshot path '{ $path }' resolves to '{ $canonical }' whi | validation | error | |
| Screenshot path '{ $path }' is missing a filename component | validation | error | |
| Cannot write screenshot to runtime config path '{ $target }' | validation | error | browser, screenshot, path-validation, security, config-protection |
| Cannot write screenshot to symlink target '{ $target }' | validation | error | browser, screenshot, symlink, security, path-validation |
| Screenshot path '{ $path }' resolves to a non-UTF-8 pathname | validation | error | browser, screenshot, utf-8, filesystem, security |
| Screenshot 'path' parameter must be a string, got { $path } | validation | error | computer-use, screenshot, json, type-validation, arguments |
| computer-use sidecar returned an empty screenshot payload | validation | error | computer-use, sidecar, screenshot, integration, payload-validation |
| computer-use sidecar returned a non-PNG screenshot payload | validation | error | computer-use, sidecar, png, screenshot, payload-validation |
| Unsupported scroll direction '{direction}'. Use up/down/left | validation | error | browser, scroll, enum, argument-validation, case-sensitive |
| Unsupported find_action '{action}'. Use click/fill/text/hove | validation | error | browser, find, enum, argument-validation |
| Unsupported browser action: {other} | validation | error | browser, action, dispatch, argument-validation |
| unsupported URL scheme: {} | validation | error | browser-delegate, url, scheme, security, validation |
| URL has no host: {} | validation | error | browser-delegate, url, host, validation |
| domain '{}' is blocked by browser_delegate policy | validation | error | browser-delegate, domain, denylist, policy, security |
| domain '{}' is not in browser_delegate allowed_domains | validation | error | browser-delegate, domain, allowlist, policy, security |
| URL cannot be empty | validation | error | browser-open, url, validation, empty-input |
| URL cannot contain whitespace | validation | error | browser-open, url, whitespace, validation, encoding |
| Only http:// or https:// URLs are allowed | validation | error | browser-open, url, scheme, validation, case-sensitive |
| Browser tool is enabled but no allowed_domains are configure | validation | error | browser-open, configuration, allowlist, fail-closed, setup |
| Blocked local/private host: {host} | validation | error | browser-open, ssrf, private-network, security, allowlist |
| Host '{host}' is not in browser.allowed_domains | validation | error | browser-open, allowlist, domain, policy, security |
| Failed to open URL with default browser launcher: {primary_e | exception | error | browser-open, launcher, system-browser, macos, environment |
| Failed to open URL with default browser launchers; Brave com | exception | error | linux, browser, headless, xdg-open, rust, zeroclaw |
| browser_open is not supported on this OS | validation | error | platform-support, cfg, rust, browser, zeroclaw |
| URL must include a host | validation | error | url-validation, http, browser, rust, zeroclaw |
| URL userinfo is not allowed | validation | error | url-validation, security, userinfo, rust, zeroclaw |
| IPv6 hosts are not supported in browser_open | validation | error | url-validation, ipv6, browser, rust, zeroclaw |
| URL must include a valid host | validation | error | url-validation, host, browser, rust, zeroclaw |
tool-channel-room-error-invalid-action tool-channel-room-error-invalid-action | validation | error | enum, validation, channel, llm-tools, rust, zeroclaw |
| Refusing to transmit sensitive data over non-HTTPS URL: URL | validation | error | security, https, composio, rust, zeroclaw |
| Composio v3 API error: {err} | http | error | composio, http, api-key, rate-limit, rust, zeroclaw |
| Composio v3 connected accounts lookup failed: {err} | http | error | composio, rust, http, api-key, rate-limit, oauth |
| Unable to determine tool slug for '{action_name}'. Run actio | validation | error | composio, rust, validation, slug, agent-tools |
| Composio v3 NLP execute failed on candidates ({v3_error_summ | http | error | composio, rust, nlp, oauth, execute, agent-tools |
| Composio execute failed on v3 ({v3_error_summary}){prime_suf | http | error | composio, rust, params, oauth, execute, schema |
| Composio v3 action execution failed: {err} | http | error | composio, rust, http, execute, params |
| Composio v3 connect failed: {err} | http | error | composio, rust, oauth, connect, http |
| Composio v3 tool schema lookup failed for '{slug}': {err} | http | warning | composio, rust, schema, http, best-effort |
| Composio v3 auth config lookup failed: {err} | http | error | composio, rust, http, connect, api-key |
| No auth config found for toolkit '{app_name}'. Create one in | validation | error | composio, rust, oauth, setup, connect |
| Missing 'app' or 'auth_config_id' for connect | validation | error | composio, rust, validation, connect, agent-tools |
| Search timed out after {TIMEOUT_SECS} seconds. | exception | error | search, timeout, ripgrep, fallback, deadline |
| oauth2 configured for '{}' but no auth service provided | validation | error | email, imap, oauth2, auth, wiring, config |
| Blocked potentially dangerous git argument: {arg} | validation | error | git, security, command-injection, arguments, sanitization |
| Path '{}' resolves outside the workspace directory | validation | error | git, path, workspace, security, symlink, traversal |
| Path not allowed: contains null byte | validation | error | git, worktree, path, validation, null-byte |
| Path not allowed: parent-directory traversal is not allowed | validation | error | git, worktree, path-traversal, security, validation |
| Worktree path '{}' resolves outside the workspace or allowed | validation | error | git, worktree, security, allowlist, workspace, path |
| Commit message cannot be empty | validation | error | git, commit, validation, zeroclaw-tools, agent-tools |
| No paths to stage | validation | error | git, staging, validation, zeroclaw-tools, agent-tools |
| Invalid branch specification | validation | error | git, checkout, branch, validation, zeroclaw-tools |
| Branch name contains invalid characters | validation | error | git, checkout, branch, security, input-sanitization, zeroclaw-tools |
| Unknown stash action: {action}. Use: push, pop, list, drop | validation | error | git, stash, unsupported-operation, validation, zeroclaw-tools |
| Missing 'subcommand' parameter. Use: list, add, remove, prun | validation | error | git, worktree, missing-parameter, validation, zeroclaw-tools |
| Missing 'worktree_path' parameter for worktree add | validation | error | git, worktree, missing-parameter, validation, zeroclaw-tools |
| Missing 'worktree_path' parameter for worktree remove | validation | error | git, worktree, missing-parameter, validation, zeroclaw-tools |
| Unknown worktree subcommand: {subcommand}. Use: list, add, r | validation | error | git, worktree, unsupported-operation, validation, zeroclaw-tools |
| URL cannot be empty | validation | error | http, url, validation, security-policy, zeroclaw-tools |
| URL cannot contain whitespace | validation | error | http, url, whitespace, validation, zeroclaw |
| Only http:// and https:// URLs are allowed | validation | error | http, url, scheme, ssrf, validation, zeroclaw |
| HTTP request tool is enabled but no allowed_domains are conf | validation | error | http, configuration, allowlist, zeroclaw |
| Blocked cloud metadata host: {host} | validation | error | http, security, ssrf, cloud-metadata, zeroclaw |
| Blocked link-local host: {host}; 169.254.0.0/16 is blocked u | validation | error | http, security, ssrf, link-local, zeroclaw |
| Blocked local/private host: {host} | validation | error | http, security, ssrf, private-network, configuration, zeroclaw |
| Host '{host}' is not in http_request.allowed_domains | validation | error | http, allowlist, url, configuration, zeroclaw |
| Unsupported HTTP method: {method}. Supported: GET, POST, PUT | validation | error | http, method, validation, zeroclaw |
| Header '{key}' value must be a string, got: {} | validation | error | http, headers, json, validation, zeroclaw |
| auth_secret cannot be empty | validation | error | http, auth, secrets, validation, zeroclaw |
| auth_secret must be 64 characters or fewer | validation | error | http, auth, secrets, validation, zeroclaw |
| auth_secret must contain only ASCII letters, numbers, unders | validation | error | http, auth, secrets, validation, zeroclaw |
| auth_secret requires a config.toml path | validation | error | http, auth, secrets, configuration, zeroclaw |
| auth_secret '{secret_name}' is empty after decryption | validation | error | http, auth, secrets, encryption, zeroclaw |
| auth_secret '{secret_name}' references environment variable | validation | error | http, auth, secrets, environment, zeroclaw |
| environment-backed auth_secret references an empty environme | validation | error | http, auth, secrets, configuration, zeroclaw |
| environment-backed auth_secret '{inner}' must contain only A | validation | error | http, auth, secrets, environment, validation, zeroclaw |
| URL userinfo is not allowed | validation | error | http, url, auth, security, zeroclaw |
| URL host has unmatched IPv6 brackets | validation | error | http, url, ipv6, validation, zeroclaw |
| URL must include a valid host | validation | error | url, validation, http-request, ssrf-guard, rust |
| Failed to resolve host '{host}' | exception | error | dns, network, http-request, environment, rust |
| Generated image URL must be a non-empty URL without whitespa | validation | error | url, validation, image-gen, fal-ai, rust |
| Generated image URL must use HTTPS | validation | error | url, https, tls, image-gen, ssrf-guard, rust |
| Generated image URL userinfo is not allowed | validation | error | url, credentials, image-gen, ssrf-guard, security, rust |
| Generated image URL host must not end with a dot | validation | error | url, dns, fqdn, image-gen, validation, rust |
| Generated image URL targets a local or non-global host | validation | error | ssrf, security, network, image-gen, private-ip, rust |
| Generated image URL targets a cloud metadata host | validation | critical | ssrf, security, cloud-metadata, image-gen, hardening, rust |
| fal.ai response exceeds the 1 MiB size limit | validation | error | size-limit, fal-ai, image-gen, response-body, rust |
| Generated image exceeds the {} MiB size limit | validation | error | size-limit, image-gen, download, response-body, rust |
| Too many generated image redirects (max {MAX_IMAGE_REDIRECTS | http | error | rust, zeroclaw, fal-ai, http-redirect, image-generation |
| Generated image download failed with HTTP {} | http | error | rust, zeroclaw, fal-ai, http-status, signed-url, image-download |
| Jira get_ticket failed ({status}): {} | http | error | rust, zeroclaw, jira, rest-api, http-status, authentication |
| Jira search_tickets failed ({status}): {} | http | error | rust, zeroclaw, jira, jql, search, http-status |
| Jira comment_ticket failed ({status}): {} | http | error | rust, zeroclaw, jira, comment, permissions, http-status |
| Jira list_projects failed ({status}): {} | http | error | rust, zeroclaw, jira, projects, authentication, http-status |
| Jira list_projects users failed ({status}): {} | http | error | rust, zeroclaw, jira, users, permissions, http-status |
| statuses request returned {} | http | error | rust, zeroclaw, jira, statuses, workflow, http-status |
| Jira myself failed ({status}): {} | http | error | rust, zeroclaw, jira, authentication, http-status, credentials |
| Jira list_transitions failed ({status}): {} | http | error | jira, http-status, rest-api, transitions |
| Transition '{name}' not found for {issue_key}. Available: {} | validation | error | jira, workflow, transitions, name-resolution |
| transition_ticket requires exactly one of transition_id or t | validation | error | jira, parameter-validation, transitions |
| Jira transition_ticket failed ({status}): {} | http | error | jira, http-status, workflow, transitions |
| create_ticket requires a non-empty summary | validation | error | jira, parameter-validation, create-ticket |
| create_ticket requires a non-empty issue_type | validation | error | jira, parameter-validation, create-ticket, issue-type |
| Jira create_ticket failed ({status}): {} | http | error | jira, http-status, create-ticket, issue-type |
| Invalid issue key '{key}'. Expected format: PROJECT-123 (e.g | validation | error | jira, validation, issue-key, format |
| Invalid project key '{key}'. Expected ASCII alphanumeric, e. | validation | error | jira, validation, project-key, format |
| LinkedIn create_post failed ({}): {} | http | error | linkedin, http-status, create-post, oauth-scope |
| LinkedIn list_posts failed ({}): {} | http | error | linkedin, http-status, list-posts |
| LinkedIn add_comment failed ({}): {} | http | error | linkedin, http-status, comments |
| LinkedIn add_reaction failed ({}): {} | http | error | linkedin, http-status, reactions |
| LinkedIn delete_post failed ({}): {} | http | error | linkedin, http-status, delete-post, idempotency |
| LinkedIn get_engagement failed ({}): {} | http | error | linkedin, http-status, engagement, analytics |
| LinkedIn get_profile failed ({}): {} | http | error | linkedin, http-status, profile, oauth |
| LinkedIn token refresh failed ({}): {} | http | critical | linkedin, oauth, refresh-token, http-status |
| LinkedIn image register failed ({status}): {body_text} | http | error | linkedin, http-status, image-upload, oauth-scope |
| LinkedIn image upload failed ({upload_status}): {body_text} | http | error | linkedin, image-upload, http, social-api |
| LinkedIn create_post_with_image failed ({status}): {body_tex | http | error | linkedin, post-creation, http, social-api |
| LINKEDIN_ACCESS_TOKEN not found in .env for update | exception | error | env-file, configuration, token-refresh, linkedin |
| All image generation model_providers failed and fallback_car | exception | error | image-generation, configuration, providers, fallback |
| {var_name} not found or empty in .env | exception | error | env-file, configuration, api-key |
| Stability AI failed ({status}): {body_text} | exception | error | stability-ai, image-generation, http, api-key |
| Imagen failed ({status}): {body_text} | exception | error | google-imagen, image-generation, http, api-key |
| DALL-E failed ({status}): {body_text} | exception | error | openai, dalle, image-generation, http, api-key |
| Flux failed ({status}): {body_text} | exception | error | flux, image-generation, http, api-key |
| Failed to download Flux image from {image_url} | exception | error | flux, image-download, signed-url, network |
| MCP server `{server_name}` rejected initialize: {:?} | exception | error | mcp, json-rpc, handshake, protocol |
| MCP `{op}` (server `{server_name}`) returned isError: {detai | exception | error | mcp, tool-call, is-error, json-rpc |
| MCP server `{server_name}` is unavailable: a prior request's | exception | critical | mcp, recovery, fail-closed, connection |
| MCP server `{server_name}` timed out after {timeout_secs}s d | exception | error | mcp, timeout, outcome-unknown, json-rpc |
| MCP server `{server_name}` timed out after {timeout_secs}s b | exception | error | mcp, timeout, serialization, recovery |
| MCP server `{server_name}` exhausted the {timeout_secs}s bud | exception | error | mcp, timeout, recovery, reconnect |
| MCP tool `{tool_name}` error {}: {} | exception | error | mcp, json-rpc, tool-call, error-code |
| MCP `{rpc_method}` error {}: {} | exception | error | mcp, json-rpc, resources, prompts, error-code |
| MCP server `{}` does not support resources | validation | warning | mcp, capability, resources, feature-gate |
| MCP server `{}` does not support prompts | validation | error | |
| MCP server `{server_name}`: tls_ca_cert_path requires an HTT | validation | error | |
| MCP server `{}`: TLS CA certificate path must name a regular | validation | error | |
| MCP server `{}`: TLS CA certificate at `{path}` exceeds the | validation | error | |
| MCP server `{}`: TLS CA certificate path must be absolute: ` | validation | error | |
| MCP server `{}`: CA certificate file `{}` contained no certi | validation | error | |
| MCP stdio transport is closed | exception | error | |
| MCP response id mismatch: expected {:?}, received {:?} | exception | error | |
| MCP server returned HTTP {} | exception | error | |
| MCP server returned no response | exception | error | |
| microsoft365: token_cache_encrypted is enabled but encryptio | validation | error | |
| Unsupported auth flow: {other} | validation | error | |
| ms365: client_credentials token request failed ({status}) | exception | error | |
| ms365: device code request failed ({status}) | exception | error | |
| ms365: device code polling failed | exception | error | |
| ms365: device code flow timed out waiting for user authoriza | exception | error | |
| ms365: token refresh failed ({status}) | http | error | |
| ms365: mail_send failed ({status}, code={code}) | http | error | |
| ms365: teams_message_send failed ({status}, code={code}) | http | error | |
| ms365: calendar_event_delete failed ({status}, code={code}) | http | error | |
| ms365: onedrive_download failed ({status}, code={code}) | http | error | |
| ms365: downloaded file exceeds max_size ({} > {max_size}) | validation | error | |
| ms365: {operation} failed ({status}, code={code}) | http | error | |
| to must contain at least one email address | validation | error | |
| '{field}' must be a string or string[] | validation | error | |
| '{field}' must be a string, string[], or delegate target obj | validation | error | |
| '{field}' must not be empty | validation | error | |
| set_default requires at least one of: model_provider, model, | validation | error | |
| 'temperature' must be between 0.0 and 2.0 | validation | error | |
| Classification rule for hint '{hint}' has no matching criter | validation | error | |
| No scenario found for hint '{hint}' | validation | error | |
| 'max_iterations' must be greater than 0 | validation | error | |
| 'max_depth' must be greater than 0 | validation | error | |
| No aliased agent found with name '{name}' | validation | error | |
| Unknown action '{action}'. Valid: get, list_hints, set_defau | validation | error | |
| Notion query_database failed ({status}): {truncated} | http | error | notion, http, api, database, query, rust |
| Notion read_page failed ({status}): {truncated} | http | error | notion, http, api, page, rust |
| Notion create_page failed ({status}): {truncated} | http | error | notion, http, api, page, create, rust |
| Notion update_page failed ({status}): {truncated} | http | error | notion, http, api, page, update, rust |
| Notion search failed ({status}): {truncated} | http | error | notion, http, api, search, rate-limit, rust |
| '{field}' must be a string or string[] | validation | error | json, config, proxy, type-mismatch, validation |
| Proxy is disabled. Use action 'set' with enabled=true first | validation | warning | proxy, config, state, precondition |
| apply_env only works when proxy.scope is 'environment' (curr | validation | warning | proxy, config, scope, precondition |
| Unknown action '{action}'. Valid: get, set, disable, list_se | validation | error | dispatch, action, typo, proxy, validation |
| unsupported template: {} | validation | error | template, report, rendering, validation |
| Unsupported text browser '{browser}'. Supported: {} | validation | error | browser, enum, text-browser, validation |
| Requested text browser '{browser}' is not installed | validation | error | browser, dependency, path, install |
| URL cannot be empty | validation | warning | url, validation, input |
| URL cannot contain whitespace | validation | warning | url, validation, encoding, whitespace |
| Only http:// and https:// URLs are allowed | validation | warning | url, scheme, validation, ssrf |
| URL userinfo is not allowed | validation | warning | url, userinfo, credentials, validation, security |
| Blocked local/private host: {display_host} | validation | error | ssrf, security, url, network, allowlist |
| wttr.in returned HTTP {status} for location '{location}'. Ch | http | error | weather, http, external-api, rate-limit, wttr |
| wttr.in could not resolve location '{location}'. Try a city | validation | warning | weather, geocoding, validation, wttr |
| Cross-host redirects are blocked so DNS validation remains p | validation | error | redirect, ssrf, security, http, web-fetch |
| URL cannot be empty | validation | error | |
| URL cannot contain whitespace | validation | error | |
| Only http:// and https:// URLs are allowed | validation | error | |
| {tool_name} tool is enabled but no allowed_domains are confi | validation | error | |
| Host '{host}' is in {tool_name}.blocked_domains | validation | error | |
| Blocked local/private host: {host}. To allow this host, add | validation | error | |
| Host '{host}' is not in {tool_name}.allowed_domains | validation | error | |
| URL userinfo is not allowed | validation | error | |
| IPv6 hosts are not supported in web_fetch | validation | error | |
| URL must include a valid host | validation | error | |
| Brave API key not configured (decrypted value is empty) | validation | error | |
| DuckDuckGo blocked the automated search request. Try configu | http | error | |
| Tavily API key not configured (decrypted value is empty) | validation | error | |
| Jina AI API key not configured (decrypted value is empty) | validation | error | |
| Bocha AI API key not configured (decrypted value is empty) | validation | error | |
| Bocha AI search returned error (code {code}): {msg} | http | error | |
| Search query cannot be empty | validation | error | |
cli-alias-unknown-provider-category unknown provider category `{$category}` (expected models | tts | transcription) | console | error | |
cli-alias-no-such-section no such config section: {$section} | console | error | |
cli-alias-create-reserved-default the `default` agent is reserved and cannot be created | console | error | |
cli-alias-delete-refused-hint delete refused — resolve the hard references first | console | error | |
cli-alias-not-configured {$path} is not configured | console | error | |
cli-alias-delete-failed delete failed: {$error} | console | error | |
cli-alias-rename-invalid invalid new alias: {$message} | console | error | |
cli-alias-rename-reserved alias `{$alias}` is reserved and cannot be renamed | console | error | |
cli-alias-rename-postcondition rename cascade post-condition failed: {$message} | console | error | |
cli-alias-delete-reserved-default the `default` agent is reserved and cannot be deleted | console | error | |
cli-alias-live-acp-sessions {$count} live ACP session(s) for `{$alias}` — end them first | console | error | |
| Channel type '{channel_type}' — use `zeroclaw config set cha | console | error | |
| Remove channel '{name}' — edit ~/.zeroclaw/config.toml direc | console | error | |
| GitHub API returned {} | http | error | |
| Update failed during swap: {e} | exception | error | |
| Update rolled back — smoke test failed: {e} | exception | error | |
| download returned {} | http | error | |
| SHA256SUMS fetch returned {} | http | error | |
| checksum mismatch for '{asset_name}': expected {expected_hex | validation | error | |
| invalid SHA256SUMS entry for '{asset_name}' | validation | error | |
| asset '{asset_name}' not found in SHA256SUMS | validation | error | update, checksum, release-artifact, asset-name, manifest |
| archive does not contain a '{target_name}' binary | validation | error | update, release-artifact, tarball, packaging, binary |
| downloaded binary too small ({} bytes), likely corrupt | validation | error | update, download, truncated-file, corrupt-download |
| downloaded binary --version check failed | exception | error | update, binary-validation, glibc, runtime-dependencies |
| downloaded binary does not appear to be zeroclaw | validation | error | update, binary-validation, wrong-binary, release-artifact |
| downloaded file too small to be a valid binary | validation | error | update, binary-validation, empty-file, corrupt-download |
| architecture mismatch: downloaded binary is {bin} but this h | validation | error | update, architecture, binary-validation, release-artifact, platform |
cli-update-not-writable install directory {$dir} is not writable ({$error}); re-run `zeroclaw update` wi | validation | error | update, permissions, install, filesystem, sudo |
| smoke test: updated binary returned non-zero exit code | exception | error | update, smoke-test, post-install, rollback |
| Unknown agent {agent_alias:?} (no [agents.{agent_alias}] ent | validation | error | cron, config, agent-alias, cli |
| --allowed-tool is only supported with --prompt cron jobs | validation | error | cron, cli, argument-validation, allowed-tool |
cli-cron-update-no-field At least one of --expression, --tz, --command, --name, --allowed-tool, --uses-me | validation | error | cron, cli, argument-validation, update |
| Cannot update expression/tz on a non-cron schedule | validation | error | cron, cli, schedule, argument-validation, update |
| --allowed-tool is only supported for agent cron jobs | validation | error | cron, cli, argument-validation, allowed-tool, update |
cli-secret-needs-tty Secret input requires a terminal on stdin and stderr. | validation | error | cli, tty, stdin, automation, secret-input |
cli-secret-empty Value cannot be empty. | validation | error | cli, input-validation, secret-input |
cli-quickstart-needs-tty Quickstart is interactive and needs a terminal on stdin and stderr. Run it from | validation | error | |
| Quickstart could not enumerate model providers — zeroclaw_pr | exception | error | |
cli-quickstart-could-not-finish quickstart could not finish: {$count} problem(s) to fix | exception | error | |
| invalid locale code '{locale}' | validation | error | |
| locale '{locale}' is not in the locales.toml registry; known | validation | error | |
| unknown catalog '{name}'; valid: {valid} | validation | error | |
| refusing to write outside the FTL data directory | validation | error | |
| no catalogues fetched for locale '{locale}' | exception | error | |
| --config-dir cannot be empty | validation | error | |
| zeroclaw was built without the 'schema-export' feature | exception | error | |
| `zeroclaw agent --agent {agent_alias}` is not configured (no | validation | error | |
| No model model_provider configured for agent {agent_alias}. | validation | error | |
| This command requires the full runtime. Rebuild with default | exception | error | |
| ACP server requires the `channel-acp-server` feature | exception | error | |
| {e} | validation | error | |
| Value cannot be empty. | validation | error | |
| cancelled | exception | error | |
| Value required. Usage: zeroclaw config set {path} <value> | validation | error | |
| config at {} does not deserialize strictly; the resilient lo | validation | error | config, toml, serde, schema, zeroclaw, cli |
| `zeroclaw props` has been renamed to `zeroclaw config`. Repl | validation | warning | cli, renamed-command, breaking-change, zeroclaw |
| `zeroclaw plugin install <url>` is not supported; use `--reg | validation | error | plugins, install, registry, cli, zeroclaw |
| Emergency stop is disabled. Enable [security.estop].enabled | validation | error | security, estop, config, cli, zeroclaw |
| security.estop.require_otp_to_resume=true but security.otp.e | validation | error | security, estop, otp, config, zeroclaw |
| --domain/--tool are only valid with --level domain-block/too | validation | error | cli, estop, arguments, zeroclaw |
| --domain/--tool are not valid with --level network-kill | validation | error | cli, estop, arguments, zeroclaw |
| --level domain-block requires at least one --domain | validation | error | cli, estop, arguments, zeroclaw |
| --tool is not valid with --level domain-block | validation | error | cli, estop, arguments, zeroclaw |
| --level tool-freeze requires at least one --tool | validation | error | cli, estop, arguments, zeroclaw |
| --domain is not valid with --level tool-freeze | validation | error | cli, estop, arguments, zeroclaw |
| Use only one of --network, --domain, or --tool for estop res | validation | error | cli, estop, resume, arguments, zeroclaw |
| `zeroclaw sop approve/deny/pending` requires the agent-runti | exception | error | build-features, sop, gateway, compile-time, zeroclaw |
| Gateway responded {status}: {err} | http | error | gateway, http, sop, daemon, zeroclaw |
| Gateway responded {status}: {detail} | http | error | sop, gateway, http, approval, zeroclaw |
| `claude setup-token` exited with status {status} | exception | error | auth, anthropic, claude-cli, subprocess, zeroclaw |
| Token cannot be empty | validation | error | auth, input-validation, quickstart, anthropic, zeroclaw |
| No auth profile found. Run `zeroclaw auth login --model-prov | validation | error | auth, refresh, profile, credentials, zeroclaw |
| Config contains malformed security-critical sections ({secti | validation | critical | config, security, startup, boot-gate |
| Port {port} is already in use, so the gateway could not star | exception | error | network, bind, port, gateway, startup |
| Gateway feature is not enabled. Rebuild with --features gate | exception | error | build, feature-flag, gateway, compile-time |
| Memory backend is 'none' (disabled). No entries to manage. | validation | error | memory, config, backend, disabled-feature |
| memory clear is unsupported for append-only backend '{$backe | validation | error | memory, cli, unsupported-operation, backend |
| the public plugin registry is not populated yet; use --regis | http | error | plugin-registry, http-404, network, install |
| plugin registry returned HTTP {status} for {registry_url} | http | error | plugin-registry, http-status, network, install |
| plugin archive returned HTTP {status} for {url} | http | error | plugin-registry, download, http-status, network |
| plugin archive exceeds maximum size of {MAX_PLUGIN_ZIP_BYTES | validation | error | plugin-registry, size-limit, download, security |
| plugin archive exceeds maximum size of {max_bytes} bytes | validation | error | plugin-registry, size-limit, streaming, security |
| plugin archive sha256 mismatch | validation | error | plugin-registry, integrity, sha256, security |
| plugin archive entry has no parent: {} | console | error | plugin-registry, zip, extract, malformed-archive |
| plugin archive exceeds extracted size limit of {max_extracte | console | error | plugin-registry, zip, size-limit, security, zip-bomb |
| plugin archive contains unsafe path: {raw_name} | console | critical | plugin-registry, zip, path-traversal, zip-slip, security |
| plugin archive does not contain manifest.toml | console | error | plugin-registry, manifest, packaging, install |
| plugin archive contains multiple manifest.toml files | console | error | plugin-registry, manifest, packaging, ambiguity |
| plugin archive manifest name '{}' does not match registry na | console | error | plugin-registry, manifest, identity, supply-chain |
| plugin archive manifest version '{}' does not match registry | console | error | plugin-registry, manifest, version, supply-chain |
| agents.{agent_alias}.risk_profile is empty | console | error | config, security, agent, risk-profile, security-status |
cli-skills-agent-not-configured agent '{$alias}' is not configured | console | error | cli, skills, agent, config, alias |
cli-skills-audit-failed Skill audit failed. | console | error | cli, skills, security, audit, scripts |
cli-skills-install-skill-requires-git --skill <name> requires a git repository URL as the source (got '{$source}') | console | error | cli, skills, install, git, argument-validation |
| Invalid skill name: {name} | console | error | cli, skills, security, path-traversal, input-validation |
| Skill not found: {name} | console | error | cli, skills, remove, not-found |
| Skill path escapes skills directory: {name} | console | error | cli, skills, security, symlink, filesystem, remove |
cli-skills-multiple-locations-bundle skill '{$name}' exists in multiple locations ({$locations}); pass --bundle to ch | console | error | cli, skills, remove, ambiguity, bundles |
| Some skill tests failed. | console | error | cli, skills, testing, ci |
cli-bundle-not-configured skill bundle '{$alias}' is not configured | console | error | cli, skills, install, bundles, config |
cli-skills-agent-multiple-bundles agent '{$alias}' has multiple skill bundles ({$bundles}); pass --bundle to choos | console | error | cli, skills, install, agent, bundles, ambiguity |
cli-skills-multiple-locations-path skill '{$name}' exists in multiple locations ({$locations}); pass an explicit pa | console | error | cli, skills, audit, testing, ambiguity |
| --description is required when stdin is not a TTY | console | error | cli, stdin, tty, skills, interactive-prompt, rust |
| no editor found; set VISUAL or EDITOR | console | error | editor, env-var, cli, skills, path, rust |
| {editor} exited with non-zero status | console | error | editor, subprocess, exit-code, cli, skills, rust |
| SOP not found: {n} | console | error | cli, sop, not-found, exact-match, rust |
| Encrypted value too short (missing nonce) | exception | error | crypto, secrets, chacha20, corrupt-data, config, rust |
| Key file must contain exactly 32 bytes (got {}) | exception | critical | crypto, secrets, key-management, config, rust |
| No IAM role attached to this instance | exception | error | aws, bedrock, iam, imds, credentials, network, rust |
| Expected type 'webauthn.create', got '{cd_type}' | exception | error | webauthn, authentication, registration, ceremony, rust |
| Challenge mismatch in registration response | exception | error | webauthn, challenge, registration, session-state, rust |
| Origin mismatch: expected '{}', got '{cd_origin}' | exception | error | webauthn, origin, cors-like, configuration, registration, rust |
| Credential ID too long ({} bytes, max {MAX_CREDENTIAL_ID_LEN | exception | error | webauthn, credential-id, validation, registration, rust |
| No registered credentials for user '{user_id}' | exception | error | webauthn, authentication, user-management, rust |
| Credential ID not in allowed list | exception | error | webauthn, authentication, credential-id, session-state, rust |
| Expected type 'webauthn.get', got '{cd_type}' | exception | error | webauthn, authentication, ceremony, rust |
| Challenge mismatch in authentication response | exception | error | webauthn, challenge, authentication, session-state, rust |
| Sign counter did not increase ({new_count} <= {}). Possible | exception | critical | webauthn, clone-detection, security, sign-counter, replay, rust |
| Credential '{credential_id}' not found for user '{user_id}' | exception | warning | webauthn, credential-management, idempotency, rust |
| Authenticator data is shorter than the required fixed fields | exception | error | webauthn, authentication, input-validation, security |
| Authenticator data relying party ID hash mismatch | exception | error | webauthn, authentication, rp-id, origin-mismatch, security |
| Authenticator data does not assert user presence | validation | error | webauthn, authentication, user-presence, flags, security |
| provider completed without final text or tool calls | exception | error | llm, completion, tool-calling, reasoning-model, empty-response |
| Blocked marker redirect to private or local host ({host}); r | validation | error | matrix, ssrf, redirect, security, network |
| Unknown channel '{channel_id}'. Supported: telegram, discord | exception | error | channels, configuration, orchestrator, unknown-channel |
| Key file path is a symlink — refusing to read | validation | error | secrets, key-file, symlink, security, unix |
| Key file path is a reparse point — refusing to read | validation | error | secrets, key-file, reparse-point, security, windows |
| unknown credential_class `{class}`; expected encrypted_secre | validation | error | proc-macro, compile-error, credentials, configuration |
| provider completed without final text or tool calls | exception | error | llm, anthropic, completion, empty-response, reasoning-model |
| provider completed without final text or tool calls | exception | error | llm, azure-openai, completion, empty-response, reasoning-model |
| provider completed without final text or tool calls | exception | error | llm, openai, completion, empty-response, reasoning-model |
| All model providers/models failed after {} failure event(s). | exception | error | llm, provider-chain, reliable, aggregate, fallback-exhausted |
| provider completed without final text or tool calls | exception | error | llm, provider-chain, cost-accounting, empty-response |
| provider completed without final text or tool calls | exception | error | llm, agent-loop, cost-accounting, empty-response |
| provider completed without final text or tool calls | exception | error | llm, agent-loop, tool-calling, empty-response |
| local IPC endpoint lifecycle is already owned at {} | exception | error | rust, unix-socket, daemon, file-lock, single-instance |
| local IPC endpoint is already serving at {} | exception | error | rust, unix-socket, daemon, endpoint-conflict, stale-socket |
| local IPC endpoint changed while being probed at {} | exception | error | rust, unix-socket, race-condition, daemon, bind |
| Landlock is only supported on Linux with the sandbox-landloc | exception | error | rust, sandbox, landlock, linux, cargo-features, cross-platform |
| Landlock is only supported on Linux | exception | error | rust, sandbox, landlock, workspace, cargo-features, linux |
| sandbox-exec not found (requires macOS) | exception | error | rust, sandbox, macos, seatbelt, sandbox-exec, not-found |
| run {} ({}) cannot resume yet: execution slots are full; it | exception | warning | rust, sop, workflow-engine, backpressure, concurrency-limits, retry |
| terminal persistence failed for run {}; active run and admis | exception | error | rust, sop, persistence, state-store, durability, fail-closed |
| MCP server `{server_name}` recovery task failed before writi | exception | error | rust, mcp, json-rpc, tokio, join-error, recovery, retry |
PermissionDenied Blocked redirect target: {err} | validation | error | rust, web-fetch, ssrf, redirect, security, allowlist, permission-denied |
| failed to build HTTP client | panic | critical | rust, reqwest, tls, panic, gmail, channel, startup-crash |
| Signal HTTP client should build | panic | error | |
| last_draft_edit lock | panic | error | |
| Failed to build HTTP client for Piper TTS | panic | error | |
| cancel_tokens lock poisoned | panic | error | |
| Failed to open device registry database | panic | error | |
| Failed to create devices table | panic | error | |
| Failed to prepare device select | panic | error | |
| Failed to query devices | panic | error | |
| setting default subscriber failed | panic | error | |
| tool linker | panic | error | |
| tool http linker | panic | error | |
| NativeChatRequest should serialize to JSON | panic | error | |
| AzureOpenAiBuilder: resource_name() is required | panic | error | |
| AzureOpenAiBuilder: deployment_name() is required | panic | error | |
| OpenAiCompatibleBuilder: display_name() is required | panic | error | |
| OpenAiCompatibleBuilder: base_url() is required | panic | error | rust, builder, panic, provider, openai-compatible, config |
| OpenAiCompatibleBuilder: auth_style() is required | panic | error | rust, builder, panic, provider, authentication |
| ModelPinnedProviderBuilder: pinned_model() is required | panic | error | rust, builder, panic, model-pinning, provider |
| ModelPinnedProviderBuilder: inner() is required | panic | error | rust, builder, panic, model-pinning, provider |
| CLI channel factory not registered — call register_cli_chann | panic | error | rust, startup, initialization-order, cli, panic, once-lock |
| system RNG failed | panic | error | rust, crypto, rng, environment, docker, sandbox |
| HMAC accepts any key length | panic | info | rust, crypto, hmac, invariant, tool-receipts |
| needs_reassembly implies a step agent alias | panic | error | rust, sop, agent-turn, invariant, panic, internal |
| owned implies a reassembly handle | panic | error | rust, sop, agent-turn, invariant, panic, internal |
| failed to build webhook HTTP client | panic | error | rust, reqwest, http-client, tls, docker, webhook |
| HTTP client build | panic | error | rust, reqwest, http-client, tls, clustering, docker |
| HMAC accepts any key length | panic | info | rust, crypto, hmac, tui, invariant |
| serialize canonical content | panic | info | rust, serde, audit-log, hash-chain, invariant |
| static Slack token regex must compile | panic | info | rust, regex, leak-detection, invariant, static-pattern |
| static Slack app-level token regex must compile | panic | info | rust, regex, leak-detection, invariant, static-pattern |
| static Slack workflow token regex must compile | panic | critical | rust, regex, panic, leak-detector, slack |
| static Slack rotation token regex must compile | panic | critical | rust, regex, panic, leak-detector, slack, token-rotation |
| failed to build reqwest client | panic | critical | rust, reqwest, tls, panic, http-client, startup |
| valid bearer token header | panic | critical | rust, http-headers, linkedin, panic, access-token |
| valid api version header | panic | critical | rust, http-headers, linkedin, panic, api-version |
| model route "{}" uses invalid model_provider "{}": {} | console | warning | zeroclaw, doctor, config, model-routes, provider |
| embedding route "{}" uses invalid model_provider "{}": {} | console | warning | zeroclaw, doctor, config, embedding-routes, provider |
| agent "{name}" uses invalid model_provider "{provider_ref}": | console | warning | zeroclaw, doctor, config, agents, provider |
| Step {step_number} {phase} schema validation failed: {reason | validation | error | rust, sop, json-schema, validation, llm-output, run-failed |
| OpenAI Codex credentials are signed in but no model provider | console | warning | zeroclaw, doctor, openai-codex, auth, wiring |
| OpenAI slot(s) {$slots} set `requires_openai_auth = true` bu | console | warning | zeroclaw, doctor, openai-codex, auth, credentials |
| config section `{$path}` is malformed and was reset to defau | console | warning | zeroclaw, config, doctor, resilient-loader, defaults |
| {label}: no api_key set (may rely on env vars or model_provi | console | warning | zeroclaw, doctor, config, api-key, env-vars |
| {label}: no model configured | console | warning | zeroclaw, doctor, config, model |
| {$provider_ref}: no context_window set — will use {$fallback | console | warning | zeroclaw, doctor, config, context-window |
| model route with empty hint | console | warning | zeroclaw, doctor, config, model-routes, hint |
| model route "{}" has empty model | console | warning | zeroclaw, doctor, config, model-routes, model |
| embedding route with empty hint | console | warning | zeroclaw, doctor, config, embedding-routes, hint |
| embedding route "{}" has empty model | console | warning | config, embeddings, doctor, toml, zeroclaw |
| embedding route "{}" has invalid dimensions=0 | console | warning | config, embeddings, doctor, toml, zeroclaw |
| memory.embedding_model uses hint "{hint}" but no matching [[ | console | warning | config, memory, embeddings, doctor, dangling-reference, zeroclaw |
| no channels configured — run `zeroclaw quickstart` to set on | console | warning | config, channels, doctor, onboarding, zeroclaw |
| channels.telegram.{alias}.bot_token is unset but the channel | console | warning | config, channels, telegram, credentials, doctor, zeroclaw |
| channels.discord.{alias}.bot_token is unset but the channel | console | warning | config, channels, discord, credentials, doctor, zeroclaw |
| {} (at {}) | console | warning | config, doctor, warnings, aggregation, zeroclaw |
| gateway.web_dist_dir = "{$path}" — {$reason}; gateway.web_di | console | warning | config, gateway, paths, doctor, zeroclaw |
| low disk space: only {avail_mb} MB available | console | warning | workspace, disk-space, doctor, operations, zeroclaw |
| [{alias}] {name} not found (optional) | console | warning | workspace, agents, doctor, optional-files, zeroclaw |
| scheduler component not tracked yet | console | warning | daemon, scheduler, health, doctor, zeroclaw |
| no channel components tracked yet | console | warning | daemon, channels, health, doctor, zeroclaw |
| {channel_count} channels, {stale} stale | console | warning | daemon, channels, health, staleness, doctor, zeroclaw |
| neither $SHELL nor %ComSpec% is set | console | warning | environment, shell, doctor, systemd, zeroclaw |
| systemd user lingering disabled; user service may stop after | console | warning | environment, systemd, service, doctor, linux, zeroclaw |
| systemd user lingering could not be checked with loginctl | console | warning | environment, systemd, loginctl, doctor, containers, zeroclaw |
| No CLI tools found in PATH | console | warning | cli-tools, path, doctor, containers, zeroclaw |
| {cmd} found but returned non-zero | console | warning | environment, cli-tools, git, curl, doctor, zeroclaw |
| {cmd} not found in PATH | console | warning | environment, path, git, curl, doctor, zeroclaw |