ErrLookup › router-for-me/CLIProxyAPI
router-for-me/CLIProxyAPI
Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini 3.1 Pro, GPT 5.6 Series, Grok 4.5, Claude model through API · Go · 599 source files
Analyzed at 78f0c4079e on 2026-08-15. 629 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| auth file not found | http | error | pluginhost, json, rpc, deserialization |
| count must be a positive integer | validation | error | pluginhost, validation, streaming |
| Codex Alpha Search API key base URL unavailable | http | error | pluginhost, lifecycle, executor |
invalid_realtime_client_secret Realtime client secret is invalid or expired | http | error | pluginhost, streaming, initialization |
realtime_client_secret_capacity_exhausted Realtime client secret capacity exhausted | http | error | pluginhost, json, rpc, deserialization |
invalid_expires_after expires_after.anchor must be created_at | validation | error | pluginhost, streaming, initialization |
invalid_session session must be a valid JSON object | validation | error | pluginhost, json, rpc, deserialization |
| Codex live request body too large | http | error | pluginhost, network, http |
| Realtime client secrets require an SDP or JSON call request | http | error | pluginhost, lifecycle, http |
| Codex live multipart boundary is missing | http | error | pluginhost, http, url, validation |
| Codex live session field must contain valid JSON | validation | error | pluginhost, network, http, proxy |
| Codex live multipart body requires an sdp field | validation | error | pluginhost, streaming, http, validation |
| Codex live call request requires an SDP offer | validation | warning | pluginhost, streaming, http, lifecycle |
| Codex live media relay requires an SDP or JSON call request | http | error | pluginhost, native, dlopen, deployment |
| Codex live response requires an SDP answer | http | critical | pluginhost, native, memory, cgo |
| Codex live remote TCP proxy does not support cancellation | http | error | pluginhost, native, abi, versioning |
| Codex live media relay capacity exhausted | http | error | pluginhost, native, abi, build |
| upstream WebRTC offer is empty | http | error | webrtc, codex, media-relay, pion, sdp |
| Codex live media session closed while configuring TCP proxy | http | warning | webrtc, codex, media-relay, race-condition, lifecycle |
| downstream WebRTC answer is empty | http | error | webrtc, codex, media-relay, pion, sdp |
| upstream WebRTC answer has no supported public TCP passive c | http | error | webrtc, codex, tcp-proxy, ice-candidates, sdp |
| Codex live TCP proxy listener returned an invalid address | http | error | webrtc, tcp-proxy, internal-invariant, codex |
| upstream WebRTC TCP proxy candidate address must be an IP | http | error | webrtc, ice-candidates, mdns, tcp-proxy, sdp |
| upstream WebRTC TCP proxy candidate address must be globally | http | error | webrtc, security, ice-candidates, nat, tcp-proxy |
| upstream WebRTC TCP proxy candidate is malformed | http | error | webrtc, sdp, ice-candidates, parsing, tcp-proxy |
| SDP contains incomplete ICE credentials | http | error | webrtc, sdp, ice, credentials, tcp-proxy |
| SDP contains inconsistent bundled ICE credentials | http | error | webrtc, sdp, ice, bundle, tcp-proxy |
| codex.live-media-relay cannot set both allow-private-remote- | validation | error | config, codex, media-relay, deprecation |
| codex.live-media-relay.max-sessions must not be negative | validation | error | config, validation, codex, media-relay |
| codex.live-media-relay UDP port minimum and maximum must bot | validation | error | config, validation, codex, media-relay, udp |
| codex.live-media-relay.udp-port-min must not exceed udp-port | validation | error | config, validation, codex, media-relay, udp |
plugin_update_requires_restart loaded plugin library cannot be overwritten while the server is running | error_code | error | plugins, windows, install, restart-required, pluginstore |
model_not_found unknown provider for model <modelName> | http | error | routing, model-not-found, api, providers, http-400 |
| ExecuteModel requires Stream=false | http | error | api-misuse, sdk, plugin-api, validation |
| ExecuteModelStream requires Stream=true | http | error | api-misuse, sdk, plugin-api, validation, streaming |
| ExecuteProtocolWithAuthManager requires Stream=false | http | error | api-misuse, sdk, plugin-api, validation, protocols |
| ExecuteProtocolStreamWithAuthManager requires Stream=true | http | error | api-misuse, sdk, plugin-api, validation, streaming, protocols |
previous_response_not_found {"error":{"message":"Previous response is not available on this websocket; resen | http | error | websocket, openai-responses, session-state, invalid-request |
| wsrelay: connection closed during response | exception | error | websocket, wsrelay, network, connection-drop |
| wsrelay: stream closed | exception | error | websocket, wsrelay, streaming, truncation |
| wsrelay: unknown error | exception | warning | wsrelay, error-handling, protocol |
| missing access_token and refresh_token | console | error | codex, oauth, credentials, cli |
| refresh response did not include access_token | console | error | codex, oauth, refresh-token, upstream-api |
| failed to save refreshed auth: %w | console | error | codex, storage, permissions, oauth |
| models request failed with status %d: %s | console | error | codex, http, upstream-api, cli |
| failed to parse response JSON: %w | console | error | codex, json, parsing, proxy |
| response JSON does not contain models array | console | error | codex, json, upstream-api, cli |
| no file uploaded | http | error | management-api, upload, multipart, validation |
| failed to open uploaded file: %w | http | warning | management-api, upload, multipart, environment |
| failed to read uploaded file: %w | http | warning | management-api, upload, network |
| failed to write file: %w | http | error | management-api, filesystem, permissions, upload |
| failed to read body | validation | warning | management-api, http, request-body |
| invalid request body | validation | error | management-api, json, validation, request-body |
| invalid name | validation | error | management-api, validation, path-traversal, security |
| failed to remove file: %w | http | error | management-api, filesystem, permissions, delete |
| auth path is empty | http | error | management-api, validation, upload, auth-files |
| failed to read auth file: %w | http | error | filesystem, auth, io, management-api |
| invalid auth file: %w | http | error | json, auth, parsing, management-api |
| core auth manager unavailable | http | error | initialization, dependency-injection, auth, management-api |
| failed to update source auth file: %w | http | error | filesystem, permissions, auth, docker |
| failed to update auth %s: %w | http | error | concurrency, state-sync, auth, retryable |
| source auth path is empty | http | warning | validation, auth, metadata |
| invalid auth file: %w | http | error | json, parsing, auth, filesystem |
| marshal auth file: %w | http | warning | json, edge-case, internal |
| metadata is nil | validation | warning | validation, metadata, nil-guard |
| invalid field path: %s | validation | warning | validation, field-path, user-input |
| auth path is empty | http | warning | validation, auth, nil-guard |
| token store unavailable | http | error | initialization, dependency-injection, token-store |
| post-auth hook failed: %w | http | error | hooks, sdk, auth, config |
| post-auth persist hook failed: %w | http | error | hooks, state-sync, watcher, auth |
| auth id is empty | http | warning | validation, api-key, auth, id |
| weight is missing | validation | warning | validation, json, user-input, patch |
| weight must be an integer | validation | warning | validation, json, type-mismatch, user-input |
| invalid log file | http | error | logging, filesystem, configuration |
| invalid cursor offset | http | error | logs, pagination, offset, rotation, management-api |
| invalid fingerprint boundary | http | warning | logs, race-condition, rotation, fingerprint, toctou |
| invalid log offset | http | error | logs, offset, validation, internal-api |
| must be a positive integer | validation | error | logs, query-params, validation, management-api |
| must be greater than zero | validation | error | logs, query-params, validation, pagination |
plugin_manifest_invalid direct plugin version %q not found | http | error | plugins, plugin-store, versioning, management-api |
plugin_install_failed %s: %w | http | error | plugins, plugin-store, github-release, install, error-wrapping |
plugin_manifest_failed release tag is required | http | error | plugins, plugin-store, manifest, sdk, github-release |
invalid_request read install request: %w | http | error | plugins, plugin-store, http, request-body, transient |
config_update_failed decode plugin config: %w | http | error | |
invalid_body %s: %w | validation | error | |
plugin_config_encode_failed %s: %w | http | error | |
ERR protocol error | http | error | |
| failed to start HTTP server: server not initialized | console | error | |
| failed to start HTTP server: %v | console | error | |
| failed to start HTTPS server: tls.cert or tls.key is empty | console | error | |
| failed to start HTTPS server: %v | console | error | |
| failed to shutdown HTTP server: %v | console | warning | shutdown, http-server, graceful-shutdown, context |
| unsupported Codex Alpha Search model route target %q (%q) | http | error | codex, plugin, model-routing, validation |
| home models payload is empty | http | error | json, models-list, parsing, upstream |
| parse home models payload: %w | http | error | json, models-list, parsing, upstream |
| home models payload has no sections | http | error | json, models-list, validation |
| home models payload contains no models | http | error | json, models-list, schema-drift |
| antigravity token exchange: create request: %w | console | error | oauth, antigravity, network, context |
| antigravity token exchange: execute request: %w | console | error | oauth, antigravity, network, tls, proxy |
| antigravity token exchange: read response: %w | console | error | oauth, antigravity, network, response-body |
| antigravity token exchange: request failed: status %d | console | error | oauth, antigravity, http-status, authorization-code |
| antigravity token exchange: request failed: status %d: %s | console | error | oauth, antigravity, http-status, error-body |
| antigravity token exchange: decode response: %w | console | error | oauth, antigravity, json, response-body |
| antigravity userinfo: missing access token | console | error | oauth, antigravity, validation, access-token |
| antigravity userinfo: create request: %w | console | error | oauth, antigravity, context, url |
| antigravity userinfo: execute request: %w | console | error | oauth, antigravity, network, tls |
| antigravity userinfo: read response: %w | console | error | oauth, antigravity, network, response-body |
| antigravity userinfo: request failed: status %d | console | error | oauth, antigravity, http-status, access-token |
| antigravity userinfo: request failed: status %d: %s | console | error | oauth, antigravity, http-status, error-body |
| antigravity userinfo: decode response: %w | console | error | oauth, antigravity, json, response-body |
| antigravity userinfo: response missing email | console | error | oauth, antigravity, user-info, scopes |
| marshal request body: %w | console | error | antigravity, json, unreachable, oauth |
| create request: %w | console | error | antigravity, http, url, configuration |
| execute request: %w | console | error | antigravity, network, proxy, tls, oauth |
| read response: %w | console | error | antigravity, network, io, transient |
| request failed with status %d: %s | console | error | antigravity, http-status, oauth, authorization |
| decode response: %w | console | error | antigravity, json, proxy, captive-portal |
| project id not found in loadCodeAssist or onboardUser respon | console | error | antigravity, provisioning, oauth, account |
| no project_id in response | console | error | antigravity, provisioning, onboarding, account |
| http %d: %s | console | error | antigravity, http-status, onboarding, authorization |
| onboard user did not complete after %d attempts | console | warning | antigravity, polling, onboarding, transient |
| fetch Claude OAuth %s: HTTP client is nil | console | error | claude, oauth, nil-guard, programming-error |
| fetch Claude OAuth %s: access token is empty | http | error | claude, oauth, validation, token |
| create Claude OAuth %s request: %w | http | error | claude, http, url, configuration |
| fetch Claude OAuth %s: %w | http | error | claude, network, proxy, tls, oauth |
| read Claude OAuth %s response: %w | http | error | claude, network, compression, io, oauth |
| fetch Claude OAuth %s failed with status %d | http | error | |
| parse Claude OAuth profile response: %w | http | error | |
| fetch Claude OAuth profile: response account UUID is empty | http | error | |
| PKCE codes are required | validation | error | |
| PKCE codes are required for token exchange | validation | error | |
| failed to marshal request body: %w | console | error | |
| failed to create token request: %w | console | error | |
| token exchange request failed: %w | console | error | |
| failed to read token response: %w | console | error | |
| token exchange failed with status %d: %s | console | error | |
| failed to parse token response: %w | console | error | |
| refresh token is required | validation | error | |
| failed to create refresh request: %w | http | error | |
| token refresh request failed: %w | http | error | |
| failed to read refresh response: %w | http | error | |
| token refresh failed after %d attempts: %w | http | error | |
| generate Claude device ID: %w | console | error | |
| select Claude device ID: device pool has %d entries, want %d | http | error | |
| select Claude device ID: session ID is empty | validation | error | claude, auth, validation, device-id |
| decode Claude OAuth gzip response: %w | http | error | claude, oauth, network, gzip, encoding |
| decode Claude OAuth response: unsupported content encoding % | http | error | claude, oauth, encoding, protocol |
| decode Claude OAuth %s response: %w | http | error | claude, oauth, network, encoding, retry |
| close Claude OAuth %s decoder: %w | http | warning | claude, oauth, gzip, encoding |
port_in_use port %d is already in use | console | error | claude, oauth, port, server, auth-flow |
| server failed to start: %w | console | error | claude, oauth, port, server, concurrency |
callback_timeout timeout waiting for OAuth callback | console | error | claude, oauth, timeout, auth-flow, callback |
| failed to generate code verifier: %w | console | critical | claude, oauth, pkce, crypto, entropy |
| failed to generate random bytes: %w | console | critical | claude, pkce, crypto, environment, entropy |
| failed to create directory: %v | exception | error | claude, storage, filesystem, permissions, auth |
| failed to merge metadata: %w | exception | error | claude, storage, json, metadata |
| failed to create token file: %w | exception | error | claude, storage, filesystem, permissions |
| failed to write token to file: %w | exception | error | claude, storage, json, disk, filesystem |
| claude oauth tls: dial upstream: %w | exception | error | claude, oauth, network, tls, proxy, dns |
| claude oauth tls: split upstream address: %w | exception | error | claude, oauth, tls, internal, dialer |
| claude oauth tls: apply ClientHello: %w | exception | critical | claude, oauth, tls, build, version-mismatch |
| claude oauth tls: handshake upstream: %w | exception | error | claude, oauth, tls, handshake, proxy, firewall |
| port %d is already in use | validation | error | codex, oauth, port, server, auth-flow |
| server failed to start: %w | exception | error | codex, oauth, port, server, concurrency |
| timeout waiting for OAuth callback | exception | error | oauth, codex, timeout, callback, auth-flow |
| failed to create token request: %w | exception | error | oauth, codex, context, http-request, auth-flow |
| token exchange request failed: %w | exception | error | network, oauth, codex, proxy, tls, auth-flow |
| failed to read token response: %w | exception | error | network, oauth, codex, io, transient, auth-flow |
| token exchange failed with status %d: %s | http | error | oauth, codex, http-status, invalid-grant, pkce, auth-flow |
| failed to parse token response: %w | exception | error | oauth, codex, json, proxy, captive-portal, auth-flow |
| failed to create refresh request: %w | exception | error | oauth, codex, context, token-refresh |
| token refresh request failed: %w | exception | error | network, oauth, codex, token-refresh, proxy, transient |
| failed to read refresh response: %w | exception | error | network, oauth, codex, io, token-refresh, transient |
| token refresh failed with status %d: %s | http | critical | oauth, codex, invalid-grant, token-rotation, token-refresh, http-status |
| failed to parse refresh response: %w | exception | error | oauth, codex, json, proxy, token-refresh |
| token refresh failed after %d attempts: %w | exception | error | oauth, codex, retry, token-refresh, invalid-grant, network |
| failed to generate code verifier: %w | exception | error | oauth, codex, pkce, crypto, auth-flow |
| failed to generate random bytes: %w | exception | error | crypto, entropy, container, pkce, os |
| failed to create directory: %v | exception | error | filesystem, permissions, storage, auth-flow, codex |
| failed to merge metadata: %w | exception | warning | json, metadata, storage, codex |
| failed to create token file: %w | exception | error | filesystem, permissions, storage, codex, auth-flow |
| failed to write token to file: %w | exception | error | filesystem, disk-full, storage, codex, io |
| kimi: failed to create device code request: %w | exception | error | oauth, kimi, context, device-flow, http-request |
| kimi: device code request failed: %w | exception | error | network, oauth, kimi, proxy, tls, device-flow, dns |
| kimi: failed to read device code response: %w | exception | error | kimi, oauth, device-flow, network, http |
| kimi: device code request failed with status %d: %s | exception | error | kimi, oauth, device-flow, http, rate-limit |
| kimi: failed to parse device code response: %w | exception | error | kimi, oauth, device-flow, json, parsing |
| kimi: context cancelled: %w | exception | warning | kimi, oauth, device-flow, context, cancellation |
| kimi: device code expired | exception | error | kimi, oauth, device-flow, expiry, timeout |
| kimi: failed to create token request: %w | exception | error | kimi, oauth, device-flow, http, unreachable |
| kimi: token request failed: %w | exception | error | kimi, oauth, device-flow, network, http |
| kimi: failed to read token response: %w | exception | error | kimi, oauth, device-flow, network, http |
| kimi: failed to parse token response: %w | exception | error | kimi, oauth, device-flow, json, parsing |
| kimi: access denied by user | exception | error | kimi, oauth, device-flow, access-denied, consent |
| kimi: OAuth error: %s - %s | exception | error | kimi, oauth, device-flow, oauth-error |
| kimi: empty access token in response | exception | error | kimi, oauth, device-flow, schema, empty-token |
| kimi: refresh token is required | validation | error | kimi, oauth, refresh-token, validation |
| kimi: failed to create refresh request: %w | exception | error | kimi, oauth, refresh-token, http, unreachable |
| kimi: refresh request failed: %w | exception | error | kimi, oauth, refresh-token, network, http |
| kimi: failed to read refresh response: %w | exception | error | kimi, oauth, refresh-token, network, http |
| kimi: refresh token rejected (status %d) | exception | critical | kimi, oauth, refresh-token, auth-failure, relogin |
| kimi: refresh failed with status %d: %s | exception | error | kimi, oauth, refresh-token, http, rate-limit |
| kimi: failed to parse refresh response: %w | exception | error | kimi, oauth, refresh-token, json, parsing |
| kimi: empty access token in refresh response | exception | error | oauth, kimi, auth, token-refresh |
| failed to create directory: %v | exception | error | filesystem, kimi, auth, permissions |
| failed to merge metadata: %w | exception | error | json, kimi, auth, metadata |
| failed to create token file: %w | exception | error | filesystem, kimi, auth, permissions |
| failed to write token to file: %w | exception | error | filesystem, json, kimi, auth, disk-full |
| service account payload is empty | validation | error | vertex, gcp, service-account, validation |
| service account missing private_key | validation | error | vertex, gcp, service-account, private-key |
| private_key is not valid pem: %w | validation | error | vertex, pem, private-key, corruption |
| private_key pem decode failed | validation | error | vertex, pem, private-key, validation |
| private_key invalid rsa: %w | validation | error | vertex, rsa, pkcs1, crypto |
| private_key invalid pkcs8: %w | validation | error | vertex, pkcs8, crypto, private-key |
| private_key is not an RSA key | validation | error | vertex, rsa, key-algorithm, crypto |
| private_key uses unsupported format | validation | error | vertex, pem, unsupported-format, private-key |
| missing pem markers | validation | error | vertex, pem, truncation, private-key |
| private_key base64 payload empty | validation | error | vertex, pem, base64, redacted-secret |
| private_key base64 decode failed: %w | validation | error | vertex, base64, pem, corruption |
| vertex credential: service account content is empty | validation | error | vertex, service-account, validation, auth |
| vertex credential: create directory failed: %w | exception | error | filesystem, vertex, auth, permissions |
| vertex credential: merge metadata failed: %w | exception | error | json, vertex, metadata, auth |
| vertex credential: create file failed: %w | exception | error | filesystem, vertex, auth, permissions |
| vertex credential: encode failed: %w | exception | error | |
| xai token storage: create directory: %w | exception | error | |
| xai token storage: merge metadata: %w | exception | error | |
| xai token storage: create token file: %w | exception | error | |
| xai token storage: write token file: %w | exception | error | |
| xai discovery %s is empty | validation | error | |
| xai discovery %s is invalid: %w | validation | error | |
| xai discovery %s must use https: %q | validation | error | |
| xai discovery %s host %q is not on x.ai | validation | error | |
| xai discovery: create request: %w | exception | error | |
| xai discovery: request failed: %w | exception | error | |
| xai discovery: read response: %w | exception | error | |
| xai discovery failed with status %d: %s | http | error | |
| xai discovery: parse response: %w | exception | error | |
| xai device code: device authorization endpoint is required | validation | error | |
| xai device code: create request: %w | exception | error | |
| xai device code request failed: %w | exception | error | |
| xai device code: read response: %w | exception | error | |
| xai device code request failed with status %d: %s | http | error | |
| xai device code: parse response: %w | exception | error | |
| xai device code: response missing device_code | validation | error | oauth, device-flow, xai, auth, response-validation |
| xai device code: response missing user_code | validation | error | oauth, device-flow, xai, auth, response-validation |
| xai device code: response missing verification URI | validation | error | oauth, device-flow, xai, auth, response-validation |
| xai device code: response is nil | validation | error | xai, auth, nil-check, programmer-error |
| xai device code: context cancelled: %w | exception | warning | xai, auth, context, cancellation |
| xai device code expired | exception | error | oauth, device-flow, xai, expiry |
| xai device token: create request: %w | exception | error | xai, auth, url, request-build |
| xai device token request failed: %w | exception | error | network, xai, auth, http |
| xai device token: read response: %w | exception | error | network, xai, auth, io |
| xai device token: parse response: %w | exception | error | xai, auth, json, response-parse |
| xai device authorization denied | exception | error | oauth, device-flow, xai, access-denied |
| xai device token error: %s: %s | exception | error | oauth, xai, auth, api-error |
| xai device token error: %s | exception | error | oauth, xai, auth, api-error |
| xai device token request failed with status %d: %s | http | error | oauth, xai, auth, http-status |
| xai device token response missing access_token | validation | error | oauth, xai, auth, response-validation |
| xai token refresh: refresh token is required | validation | error | xai, auth, refresh-token, validation |
| no suitable browser found on Linux system | console | warning | browser, linux, headless, oauth |
| unsupported operating system: %s | console | error | browser, platform, goos, portability |
| failed to start browser command: %w | console | warning | browser, linux, exec, headless, oauth |
| xai token request: create request: %w | exception | error | |
| xai token request failed: %w | exception | error | |
| xai token response: read body: %w | exception | error | |
| xai token request failed with status %d: %s | exception | error | |
| xai token response: parse body: %w | exception | error | |
| xai token response missing access_token | exception | error | |
invalid_request failed to read Realtime client secret request: %w | http | error | |
realtime_capability_not_supported Realtime session type is not supported by the Codex OAuth upstream: %q | http | error | |
| failed to read Codex live request: %w | http | error | |
| failed to decode Realtime call request: %w | http | error | |
| failed to decode Realtime session: %w | http | error | |
| failed to parse Codex live multipart body: %w | http | error | |
| failed to read Codex live multipart field: %w | http | error | |
| failed to decode Codex live call request: %w | http | error | |
| failed to encode Codex live SDP offer: %w | validation | error | |
| failed to encode Codex live call request: %w | validation | error | |
| failed to decode Codex live response: %w | http | error | |
| register Opus codec: %w | http | error | |
| register WebRTC interceptors: %w | http | critical | webrtc, pion, initialization, dependency-mismatch |
| configure WebRTC UDP port range: %w | http | error | webrtc, pion, configuration, network, ports |
| configure Codex live remote TCP proxy: %w | http | error | proxy, configuration, network, validation |
| create downstream PeerConnection: %w | http | error | webrtc, pion, ice, stun, turn, configuration |
| create upstream PeerConnection: %w | http | error | webrtc, pion, ice, upstream, cleanup |
| set downstream WebRTC offer: %w | http | error | webrtc, sdp, negotiation, client-input |
| create downstream audio track: %w | http | error | webrtc, pion, audio, track, unreachable-in-practice |
| add downstream audio track: %w | http | error | webrtc, audio, negotiation, opus, track |
| create upstream audio track: %w | http | error | webrtc, pion, audio, track, unreachable-in-practice |
| add upstream audio track: %w | http | error | webrtc, audio, upstream, track |
| create upstream DataChannel: %w | http | error | webrtc, data-channel, sctp, concurrency |
| create upstream WebRTC offer: %w | http | error | webrtc, sdp, offer, concurrency |
| set upstream WebRTC offer: %w | http | error | webrtc, sdp, ice, concurrency, state-machine |
| gather upstream WebRTC candidates: %w | http | error | webrtc, ice, context, timeout, gathering |
| close TCP candidate tunnels: %w | http | warning | webrtc, tcp-tunnel, proxy, cleanup, concurrency |
| set upstream WebRTC answer: %w | http | error | webrtc, sdp, answer, negotiation, upstream |
| set upstream WebRTC answer: %w close TCP candidate tunnels: | http | error | webrtc, sdp, errors-join, tcp-tunnel, cleanup |
| create downstream WebRTC answer: %w | http | error | webrtc, sdp, answer, downstream, concurrency |
| set downstream WebRTC answer: %w | http | error | webrtc, sdp, state-machine, concurrency, downstream |
| gather downstream WebRTC candidates: %w | http | error | webrtc, ice, context, timeout, gathering, downstream |
| parse upstream WebRTC answer for TCP proxy: %w | http | error | webrtc, sdp, codex-live, tcp-proxy, parsing |
| parse upstream WebRTC offer for TCP proxy: %w | http | error | webrtc, sdp, codex-live, tcp-proxy, session-state |
| read upstream WebRTC answer ICE credentials: %w | http | error | webrtc, ice, sdp, codex-live, tcp-proxy |
| read upstream WebRTC offer ICE credentials: %w | http | error | webrtc, ice, sdp, codex-live, tcp-proxy, session-state |
| upstream WebRTC answer exceeds the %d candidate limit | http | error | webrtc, sdp, dos-protection, codex-live, limits |
| upstream WebRTC answer exceeds the %d TCP candidate proxy li | http | error | webrtc, tcp-proxy, dos-protection, codex-live, limits |
| marshal proxied upstream WebRTC answer: %w | http | error | webrtc, sdp, tcp-proxy, marshalling, codex-live |
| parse upstream WebRTC candidate: %w | http | error | webrtc, ice, candidate, parsing, codex-live |
| upstream WebRTC TCP proxy candidate uses disallowed port %d | http | error | webrtc, tcp-proxy, security-policy, port-443, codex-live |
| listen for Codex live TCP proxy candidate: %w | http | error | network, tcp, listen, file-descriptors, codex-live, tcp-proxy |
| decode codex.live-media-relay.allow-private-remote-ips: %w | validation | error | config, yaml, codex-live, type-error |
| decode codex.live-media-relay.disable-private-remote-ips: %w | validation | error | config, yaml, codex-live, type-error |
| codex.live-media-relay.public-ip is invalid: %q | validation | error | config, validation, ip-address, codex-live, media-relay |
| codex.live-media-relay UDP range requires at least %d ports | validation | error | config, validation, udp, ports, codex-live, media-relay |
| codex.live-media-relay.ice-servers[%d].urls is required | validation | error | config, validation, ice-servers, codex-live |
| codex.live-media-relay.ice-servers[%d] contains an invalid U | validation | error | config, validation, ice-servers, url, codex-live |
| codex.live-media-relay.ice-servers[%d] uses unsupported sche | validation | error | config, validation, ice-servers, scheme, codex-live |
| failed to read config file: %w | validation | critical | config, filesystem, permissions, startup |
| failed to parse config file: %w | validation | critical | config, yaml, parsing, startup |
| failed to hash remote management key: %w | validation | error | config, bcrypt, remote-management, secret-key, startup |
| parse plugin enabled: %w | validation | error | config, yaml, plugins, parsing |
| parse plugin priority: %w | validation | error | config, yaml, plugins, parsing |
| invalid yaml document structure | http | error | config, yaml, persistence, filesystem |
| expected root mapping node | http | error | config, yaml, persistence, structure |
| invalid generated yaml structure | http | error | config, yaml, internal, invariant |
| expected generated root mapping node | http | error | config, yaml, internal, invariant |
| lifecycle configuration revision must be positive when prese | validation | error | config, validation, credential-concurrency, revision |
| observation barrier revision must not be negative | validation | error | config, validation, credential-concurrency, revision |
| credential concurrency lifecycle durations must be positive | validation | error | config, validation, credential-concurrency, durations |
| credential concurrency limiter durations must be positive | validation | error | config, validation, credential-concurrency, durations, rate-limiting |
| credential concurrency release max backoff must not be less | validation | error | config, validation, credential-concurrency, durations, backoff |
| credential concurrency busy retry durations must be whole mi | validation | error | config, validation, credential-concurrency, durations, precision |
| credential concurrency busy retry max must not be less than | validation | error | config, validation, credential-concurrency, retry |
| credential concurrency max limit must be between 1 and %d | validation | error | config, validation, credential-concurrency, limits |
| credential concurrency lifecycle timing safety invariant ove | validation | error | config, validation, credential-concurrency, overflow, durations |
| node heartbeat timeout plus reclaim grace must exceed CPA he | validation | error | config, validation, credential-concurrency, lifecycle, timing-invariant |
| credential-in-flight.snapshot-interval must be positive | validation | error | config, validation, credential-in-flight, durations, observability |
| credential-in-flight.stale-after must be at least three snap | validation | error | config, validation, credential-in-flight, durations, observability |
| credential-in-flight.staging-retention must be positive | validation | error | config, validation, credential-in-flight, durations, retention |
| credential-in-flight part bounds are invalid | validation | error | |
| credential-in-flight.max-revision-bytes is outside hard boun | validation | error | |
| credential-in-flight.max-revision-bytes exceeds part capacit | validation | error | |
| credential-in-flight.max-aggregate-groups is invalid | validation | error | |
| credential-in-flight.max-details is invalid | validation | error | |
| credential-in-flight.max-string-bytes is invalid | validation | error | |
| invalid disable-image-generation value | validation | error | |
| invalid disable-image-generation value %q (allowed: true, fa | validation | error | |
| config payload is empty | validation | error | |
| parse config payload: %w | validation | error | |
| hash remote management key: %w | exception | error | |
| resolve plugins directory: %w | exception | error | |
| %s.weight: weight must be an integer | validation | error | |
| %s.weight: %w | validation | error | |
| gemini-api-key[%d].weight: %w | validation | error | |
| interactions-api-key[%d].weight: %w | validation | error | |
| claude-api-key[%d].weight: %w | validation | error | |
| vertex-api-key[%d].weight: %w | validation | error | |
| codex-api-key[%d].weight: %w | validation | error | config, validation, load-balancing, codex |
| xai-api-key[%d].weight: %w | validation | error | config, validation, load-balancing, xai |
| openai-compatibility[%d].api-key-entries[%d].weight: %w | validation | error | config, validation, load-balancing, openai-compatibility |
| weight must not exceed %d | validation | error | validation, load-balancing, go, credentialweight |
| weight must be an integer: %w | validation | error | validation, parsing, go, credentialweight |
| weight must be an integer | validation | error | validation, parsing, go, json, credentialweight |
| home jwt is invalid | validation | error | jwt, authentication, enrollment, home, validation |
| home jwt certificate_id is required | validation | error | jwt, authentication, enrollment, home, validation |
| home jwt cluster_id is required | validation | error | jwt, authentication, enrollment, home, validation |
| home jwt ca_fingerprint is required | validation | error | jwt, authentication, mtls, enrollment, home, validation |
| home jwt enrollment_secret is required | validation | error | jwt, authentication, enrollment, home, secrets |
| home jwt target address is invalid | console | error | jwt, authentication, enrollment, home, network |
| home ca certificate file is missing | console | error | mtls, certificates, enrollment, home, filesystem |
| home certificate response is incomplete | console | error | mtls, certificates, enrollment, home, network |
| home ca fingerprint is required | console | error | go, tls, certificate, configuration, home |
| home ca fingerprint mismatch | console | critical | go, tls, certificate, pinning, home |
| home ca certificate pem is invalid | console | error | go, tls, certificate, pem, home |
| client key pem is invalid | console | error | go, tls, private-key, pem, home |
| client key is not rsa | console | error | go, tls, private-key, rsa, home |
| client key pem type %q is unsupported | console | error | go, tls, private-key, pem, home |
| certificate id is required | console | error | go, enrollment, configuration, home |
| home certificate request failed | console | error | go, enrollment, resp, home, server-rejection |
| home certificate request returned nil | console | error | go, resp, enrollment, protocol, home |
| %s | console | error | go, resp, redis, protocol, home |
| home certificate request returned unsupported resp prefix %q | console | error | go, resp, protocol, configuration, home |
| home: invalid address (host=%q port=%d) | console | error | go, configuration, redis, home |
| home tls: client certificate and key must be set together | console | error | go, tls, mtls, configuration, home |
| home tls: load client certificate: %w | console | error | go, tls, mtls, private-key, home |
| home tls: read ca-cert: %w | console | error | go, tls, filesystem, configuration, home |
| home tls: ca-cert contains no PEM certificates | console | error | go, tls, pem, certificate, home |
| home cluster discovery transport failed: %w | console | error | go, redis-cluster, discovery, tls, home |
| home kv store unavailable: %w | exception | warning | go, kv-store, configuration, home |
| home kv store unavailable | exception | error | |
| home plugin status client is unavailable | exception | error | |
| home plugin status node id is empty | validation | error | |
| home plugins: goos is required | validation | error | |
| home plugins: goarch is required | validation | error | |
| home plugins: %w | exception | error | |
| home plugins: plugin sync response expired | exception | error | |
| home plugins: discover installed plugin %s: %w | exception | error | |
| home plugins: manifest plugin id is empty | validation | error | |
| home plugins: install %s: %w | exception | error | |
| invalid plugin id %q | validation | error | |
| home plugins: plugin %s install failed | exception | error | |
| home plugins: plugin %s installed but not loaded | exception | error | |
| home plugins: decode store manifest for %s: %w | exception | error | |
| home plugins: invalid store manifest for %s: %w | validation | error | |
| create request: %w | exception | error | |
| request failed: %w | exception | error | |
| unexpected status %d: %s | http | error | |
| read response: %w | exception | error | |
| response exceeds maximum allowed size of %d bytes | validation | error | |
| httpwire: request header exceeds %d bytes | http | error | |
| httpwire: chunk size line exceeds %d bytes | http | error | |
| httpwire: invalid chunk size %q | http | error | |
| httpwire: chunk data is missing CRLF terminator | http | error | |
| httpwire: chunk trailers exceed %d bytes | http | error | |
| logging: failed to create log directory: %w | exception | error | |
| failed to create gzip reader: %w | exception | error | |
| failed to decompress gzip data: %w | exception | error | |
| invalid callback URL | validation | error | |
| callback URL missing code | validation | error | |
| plugin executor %s declares no input formats | http | error | |
| plugin executor %s does not support input format %q | http | error | |
| plugin executor %s declares no output formats | http | error | |
| plugin executor %s does not support output format %q | http | error | |
| plugin executor %s is unavailable | http | error | |
| plugin executor %s panic: %v | panic | error | |
| plugin executor %s stream panic: %v | panic | error | plugin, panic, streaming, circuit-breaker, recover |
| plugin executor %s refresh panic: %v | panic | error | plugin, panic, auth-refresh, circuit-breaker, oauth |
| plugin executor %s refresh returned invalid auth data | exception | error | plugin, auth-refresh, data-validation, oauth |
| plugin executor %s count tokens panic: %v | panic | error | plugin, panic, token-count, circuit-breaker, recover |
| plugin executor %s received nil HTTP request | exception | warning | plugin, nil-check, http, programming-error |
| plugin executor %s http request panic: %v | panic | error | plugin, panic, http, circuit-breaker, recover |
| read plugin http request body: %w | exception | error | plugin, http, request-body, io, middleware |
| decode host auth list request: %w | validation | error | plugin, rpc, json, validation |
| decode host auth get request: %w | validation | error | plugin, rpc, json, validation |
| auth_index is required | validation | error | plugin, rpc, validation, auth |
| decode host auth get runtime request: %w | validation | error | plugin, rpc, json, validation |
| auth runtime info not found for auth_index %s | exception | error | plugin, rpc, auth, state-consistency |
| decode host auth save request: %w | validation | error | plugin, rpc, json, validation, auth-save |
| auth directory is unavailable | exception | critical | plugin, auth, config, filesystem |
| failed to read auth dir: %w | exception | error | plugin, auth, filesystem, permissions, deployment |
| core auth manager unavailable | exception | error | go, pluginhost, auth, initialization, lifecycle |
| auth not found for auth_index %s | exception | error | go, pluginhost, auth, lookup, stale-reference |
| auth file path not found for auth_index %s | exception | error | go, pluginhost, auth, filesystem, metadata |
| auth file not found for auth_index %s | exception | error | go, pluginhost, auth, filesystem, file-not-found |
| failed to read auth file: %w | exception | error | go, pluginhost, auth, filesystem, permissions, io |
| auth file is empty for auth_index %s | validation | error | go, pluginhost, auth, filesystem, corruption |
| invalid auth file for auth_index %s: %w | validation | error | go, pluginhost, auth, json, corruption |
| invalid auth file name | validation | error | go, pluginhost, auth, security, validation, path-traversal |
| auth file name must end with .json | validation | error | go, pluginhost, auth, validation, file-extension |
| json is required | validation | error | go, pluginhost, auth, validation, empty-payload |
| invalid auth json: %w | validation | error | go, pluginhost, auth, json, validation |
| failed to write auth file: %w | exception | error | go, pluginhost, auth, filesystem, permissions, io |
| auth path is empty | validation | error | go, pluginhost, auth, validation, internal-api |
| invalid auth file: %w | validation | error | go, pluginhost, auth, json, corruption |
| invalid auth weight: %w | validation | error | go, pluginhost, auth, validation, load-balancing |
| auth provider panic: %v | panic | error | go, pluginhost, auth, plugin, panic, circuit-breaker |
| auth provider %s returned auth without provider | exception | error | go, pluginhost, auth, plugin, contract, validation |
| auth provider %s returned invalid auth data | exception | error | go, pluginhost, auth, plugin, contract, validation |
| auth provider start login panic: %v | panic | error | plugin, panic, auth, oauth, pluginhost |
| auth provider poll login panic: %v | panic | error | plugin, panic, auth, oauth, pluginhost |
| auth provider refresh panic: %v | exception | error | plugin, panic, auth, token-refresh, pluginhost |
| auth provider refresh returned invalid auth data | exception | error | plugin, auth, token-refresh, validation, pluginhost |
| plugin client is closed | exception | error | plugin, lifecycle, shutdown, rpc, pluginhost |
| invalid %s value %q | validation | error | cli, flags, validation, pluginhost |
| pluginhost: token store unavailable | console | error | plugin, auth, token-store, initialization, pluginhost |
| pluginhost: command-line auth %d is invalid | console | error | plugin, auth, validation, command-line, pluginhost |
| pluginhost: save command-line auth %s: %w | console | error | plugin, auth, filesystem, permissions, pluginhost |
| plugin host is unavailable | http | error | plugin, nil-check, lifecycle, executor, pluginhost |
| target executor plugin id is required | http | error | plugin, executor, routing, validation, pluginhost |
| plugin executor %s is unavailable | http | error | plugin, circuit-breaker, executor, panic, pluginhost |
| plugin %s does not declare an executor | http | error | plugin, executor, capabilities, routing, pluginhost |
| plugin executor %s has no provider identifier | http | error | plugin, executor, capabilities, validation, pluginhost |
| plugin executor %s not found | http | error | plugin, executor, routing, configuration, pluginhost |
| host model executor is unavailable | exception | error | plugin, host-callback, executor, lifecycle, pluginhost |
| model execution failed with status %d | exception | error | plugin, host-callback, upstream, http-status, pluginhost |
| model execution failed | exception | error | plugin, host-callback, upstream, error-handling, pluginhost |
| decode host log request: %w | exception | error | plugin, rpc, json, logging, schema-mismatch, pluginhost |
| decode host model execution stream request: %w | exception | error | |
| host.model.execute_stream requires stream=true | validation | error | |
| host model executor is unavailable | exception | error | |
| host model stream bridge is unavailable | exception | error | |
| decode host model stream read request: %w | exception | error | |
| decode host model stream close request: %w | exception | error | |
| read host http response: %w | exception | error | |
| host http client is unavailable | exception | error | |
| create host http request: %w | exception | error | |
| execute host http request: %w | exception | error | |
| http stream id is required | validation | error | |
| http stream %s is not open | exception | error | |
| dlopen %s: %s | exception | error | |
| missing cliproxy_plugin_init: %s | exception | error | |
| allocate host api | exception | error | |
| allocate host context | exception | error | |
| cliproxy_plugin_init returned %d | exception | error | |
| plugin ABI version %d is not supported | exception | error | |
| plugin function table is incomplete | exception | error | |
| plugin client is closed | exception | error | plugin, cgo, lifecycle, dynamic-library |
| plugin call %s returned %d: %s | exception | error | plugin, cgo, rpc, dynamic-library |
| standard dynamic library plugin loading requires cgo on this | exception | error | plugin, cgo, build, dynamic-library |
| cliproxy_plugin_init returned %d: %v | exception | error | plugin, windows, dll, dynamic-library |
| plugin ABI version %d is not supported | exception | error | plugin, windows, abi, version-mismatch, dynamic-library |
| plugin function table is incomplete | exception | error | plugin, windows, dll, contract, dynamic-library |
| remove stale shadow plugin: %w | exception | error | plugin, windows, file-lock, shadow-copy, dynamic-library |
| move shadow plugin: %w | exception | error | plugin, windows, file-lock, rename, shadow-copy |
| plugin client is closed | exception | error | plugin, windows, lifecycle, dynamic-library |
| allocate plugin response buffer: %w | exception | error | plugin, windows, memory, allocation |
| allocate plugin response buffer | exception | error | plugin, windows, memory, allocation |
| plugin call %s returned %d: %s | exception | error | plugin, windows, rpc, dynamic-library |
| management registrar panic: %v | panic | error | plugin, panic, management-api, isolation |
| management handler panic: %v | panic | error | plugin, panic, management-api, http-handler, isolation |
| resource handler panic: %v | panic | error | plugin, panic, resource-routes, http-handler, isolation |
| model stream bridge is unavailable | exception | error | plugin, streaming, nil-guard, sdk |
| plugin store auth missing header-name | http | error | config, plugin-store, auth, validation |
| unsupported plugin store auth type %q | http | error | config, plugin-store, auth, validation |
| plugin store resolved auth token is empty | http | error | config, plugin-store, auth, secrets, management-api |
| plugin store resolved basic auth is incomplete | http | error | config, plugin-store, auth, secrets, management-api |
| plugin store resolved auth missing header-name | http | error | config, auth, plugin-store, validation |
| plugin store resolved auth header value is empty | http | error | auth, env, plugin-store, config |
| unsupported plugin store resolved auth type %q | http | error | config, auth, plugin-store, typo |
| invalid plugin store url | http | error | url, config, plugin-store, validation |
| plugin store url must not contain credentials | http | error | security, url, auth, plugin-store |
| plugin store url contains sensitive query parameter | http | error | security, url, plugin-store, auth |
| insecure plugin store url requires matching allow-insecure a | http | error | security, config, plugin-store, tls |
| plugin auth provider refresh is unavailable for provider %s | exception | error | auth, oauth, plugin, refresh-token |
| decode plugin envelope %s: %w | exception | error | rpc, plugin, json, protocol |
| decode plugin result %s: %w | exception | error | rpc, plugin, json, version-mismatch |
| %s | http | error | rpc, plugin, error-passthrough |
| plugin call failed | http | error | rpc, plugin, observability |
| %s | exception | error | streaming, plugin, sse, error-passthrough |
| plugin store resolved auth expired | validation | error | auth, expiry, token, plugin-store |
| plugin store auth missing %s | http | error | config, auth, plugin-store, env |
| plugin store auth env %s is empty | http | error | env, auth, secrets, plugin-store |
| line %d: invalid checksum entry | http | error | checksum, integrity, plugin-store, file-format |
| line %d: invalid sha256 length | http | error | checksum, sha256, plugin-store, file-format |
| line %d: invalid sha256: %w | http | error | checksum, hex, plugin-store, corruption |
| checksum for %s not found | http | error | checksum, integrity, plugin-store, naming |
| checksum mismatch for %s | http | critical | integrity, checksum, sha256, download, plugin-store |
| install type %q is not direct | http | error | install-plan, artifact-selection, plugin-store, validation |
| artifact not found for %s/%s | http | error | platform-support, artifact-selection, goos, goarch, plugin-store |
| artifact exceeds declared size | http | error | size-limit, download, manifest, plugin-store |
| artifact checksum missing | http | error | checksum, manifest, sha256, validation, plugin-store |
| artifact checksum mismatch | http | critical | integrity, checksum, sha256, download, plugin-store |
| decode release: %w | http | error | github-api, json, decode, network, plugin-store |
| release tag is required | http | error | validation, github-api, release-tag, input-validation |
| invalid release tag %q | http | error | release-tag, version-validation, github-api, plugin-store |
| asset %q missing download url | http | error | github-api, release-asset, download-url, validation, plugin-store |
| stopped after %d redirects | http | error | redirects, http, loop-protection, network, plugin-store |
| create request: %w | http | error | http, url-validation, request-construction, plugin-store |
| redirect missing Location header | http | error | http, redirects, headers, network, plugin-store |
| parse redirect base: %w | http | warning | http, url-validation, redirects, defensive-check |
| parse redirect location: %w | http | warning | http, redirects, url-validation, headers, plugin-store |
| redirect location is not absolute | http | error | http, redirects, url-validation, configuration, plugin-store |
| unexpected status %d | http | error | http-status, authentication, github-api, plugin-store |
| unexpected status %d: %s | http | error | http-status, rate-limit, github-api, network, plugin-store |
| read response: %w | http | error | network, io, retry, context-cancellation, plugin-store |
| response exceeds maximum allowed size of %d bytes | http | error | network, download, size-limit, github-api, go |
| request %s failed: %w | http | error | network, http, dns, proxy, go |
| release asset %s not found | http | error | release-assets, platform, goarch, goos, github-api, go |
| release asset checksums.txt not found | http | error | release-assets, checksum, release-workflow, go |
| plugin sync response is nil | validation | error | nil-check, api-misuse, validation, go |
| unsupported plugin sync schema_version %d | validation | error | version-skew, schema, sync, validation, go |
| plugin sync response missing expires_at | validation | error | validation, sync, timestamp, json, go |
| plugin sync response expired | validation | warning | expiry, cache, clock, sync, go |
| plugin sync item %d: %w | validation | error | manifest, validation, sync, go |
| plugin sync response contains duplicate plugin %q | validation | error | duplicate, manifest, sync, validation, go |
| plugin sync item %d auth %d: %w | validation | error | auth, sync, validation, go |
| direct plugin sync manifest requires pinned artifacts | validation | error | manifest, install-plan, sync, validation, go |
| direct plugin sync artifact %d must use https | validation | error | https, artifact-url, security, manifest, go |
| unsupported install type %q | validation | error | manifest, install-type, version-skew, go |
| invalid plugin version %q | validation | error | version, validation, install, go |
| release tag %q resolved version %q, want %q | validation | error | version-pin, release-tag, install, go |
| download %s: %w | exception | error | network, download, install, release-assets, go |
| download checksums.txt: %w | exception | error | network, download, checksum, install, go |
| invalid plugin id %q | validation | error | plugin-id, validation, install, go |
| download artifact: %w | exception | error | go, plugin-store, network, download, install |
| direct install manifest missing source-url | validation | error | go, plugin-store, manifest, configuration |
| fetch direct install source: %w | exception | error | go, plugin-store, network, registry, manifest |
| direct install plugin %q not found in source | validation | error | go, plugin-store, registry, manifest, lookup |
| direct install plugin %q resolved as %q | validation | error | go, plugin-store, registry, install-type, manifest |
| direct install plugin %q version %q: %w | validation | error | go, plugin-store, registry, install-plan, validation |
| direct install plugin %q version %q resolved as %q | validation | error | go, plugin-store, registry, install-type, version |
| direct install plugin %q version %q not found in source | validation | error | go, plugin-store, registry, version, lookup |
| open zip: %w | exception | error | go, plugin-store, zip, archive, validation |
| stat target plugin: %w | exception | error | go, plugin-store, filesystem, permissions, install |
| read target plugin: %w | exception | error | go, plugin-store, filesystem, permissions, idempotency |
| prepare plugin write: %w | exception | error | go, plugin-store, callback, install, concurrency |
| zip entry %s is not a regular file | validation | error | go, plugin-store, zip, security, symlink |
| target dynamic library must be at zip root | validation | error | go, plugin-store, zip, packaging, layout |
| dynamic library filename must be %s or %s | validation | error | go, plugin-store, zip, packaging, naming |
| zip contains multiple target dynamic libraries | validation | error | pluginstore, zip, packaging, install |
| zip does not contain %s | validation | error | pluginstore, zip, packaging, install |
| open %s: %w | exception | error | pluginstore, zip, io, corruption |
| read %s: %w | exception | error | pluginstore, zip, io, crc, corruption |
| zip entry has empty name | validation | error | pluginstore, zip, validation, security |
| zip entry %s uses backslash path separators | validation | error | pluginstore, zip, security, windows |
| zip entry %s is absolute | validation | error | pluginstore, zip, security, path-traversal |
| zip entry %s escapes archive root | validation | error | pluginstore, zip, security, zip-slip, path-traversal |
| create plugin directory: %w | exception | error | pluginstore, filesystem, permissions, install |
| create temp plugin file: %w | exception | error | pluginstore, filesystem, resources, install |
| chmod temp plugin file: %w | exception | error | pluginstore, filesystem, permissions |
| write temp plugin file: %w | exception | error | pluginstore, filesystem, disk-full, install |
| sync temp plugin file: %w | exception | error | pluginstore, filesystem, durability, io |
| close temp plugin file: %w | exception | error | pluginstore, filesystem, io |
| remove old plugin file: %w | exception | error | pluginstore, windows, file-locking, install |
| install plugin file: %w | exception | error | pluginstore, windows, file-locking, retry |
| github-release manifest requires a resolved release | exception | error | pluginstore, manifest, api-misuse, github-release |
| unsupported install type %q | validation | error | pluginstore, manifest, validation, version-skew |
| missing required field version | validation | error | pluginstore, manifest, validation |
| invalid plugin version %q | validation | error | pluginstore, manifest, validation, version |
| unsupported schema-version %d | validation | error | pluginstore, manifest, schema-version, validation |
| missing required field release-tag | validation | error | pluginstore, manifest, github-release, validation |
| release-tag %q resolves version %q, want %q | validation | error | pluginstore, manifest, github-release, version-mismatch |
| artifacts[%d]: invalid artifact url | validation | error | pluginstore, manifest, artifact-url, url-parsing |
| artifacts[%d]: pinned artifact url must not contain credenti | validation | error | pluginstore, security, artifact-url, credentials |
| artifacts[%d]: pinned artifact url must not contain query or | validation | error | pluginstore, security, artifact-url, query-string |
| missing required field id | validation | error | pluginstore, manifest, id, validation |
| invalid plugin id %q | validation | error | pluginstore, manifest, id, regex-validation |
| missing required field source-url | validation | error | pluginstore, manifest, source-url, validation |
| invalid source-url | validation | error | pluginstore, manifest, source-url, url-parsing |
| source-url must use http or https | validation | error | pluginstore, manifest, source-url, scheme |
| Method not allowed | http | warning | claude, oauth, http-405, callback |
| OAuth error: %s | http | error | claude, oauth, authorization, callback |
| No authorization code received | http | error | claude, oauth, authorization-code, callback |
| No state parameter received | http | error | claude, oauth, state, csrf |
| Method not allowed | http | warning | codex, oauth, http-405, callback |
| OAuth error: %s | http | error | codex, oauth, authorization, callback |
| No authorization code received | http | error | codex, oauth, authorization-code, callback |
| No state parameter received | http | error | oauth, codex, authentication, csrf |
| failed to read plugin management request body | http | warning | plugin, http, request-body, client-disconnect |