ErrLookup › CherryHQ/cherry-studio
CherryHQ/cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs · TypeScript · 4,882 source files
Analyzed at 726446b54c on 2026-08-12. 318 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| OpenAI-compatible reranking model only supports text documen | validation | error | image-generation, custom-provider, vendor-api, transport |
| Rerank response must contain a results array | validation | error | image-generation, content-moderation, vendor-api, empty-result |
| Rerank response results must be objects | validation | error | image-generation, transport, adapter-contract, async-polling |
| Rerank response results must contain numeric index and relev | validation | error | image-generation, download, network, file-persistence, cdn |
| Rerank response results must reference a valid document inde | validation | error | vertex-ai, model-listing, iam-gcp, auth |
| OpenAI-compatible reranking model requires baseURL | validation | error | vertex-ai, model-listing, invariant, defensive |
| Provider extension "${id}" not found. Did you forget to regi | exception | error | vertex-ai, auth, iam-gcp, configuration, model-listing |
| Provider extension "${baseId}" not found. Did you forget to | exception | warning | python, http-server, json-validation, eval-viewer, skill-creator |
| Failed to create provider "${id}" | exception | error | python, subprocess, claude-cli, skill-creator, environment |
| OpenAI Compatible provider requires settings | validation | error | python, skill-creator, frontmatter, yaml, parsing |
| Private key must be a non-empty string | validation | error | auth, private-key, validation, config |
| Invalid PEM format: missing BEGIN/END markers or key content | validation | error | auth, private-key, pem, validation |
| Private key content is empty after cleaning | validation | error | auth, private-key, pem, validation |
| Private key contains invalid characters (not valid Base64) | validation | error | auth, private-key, pem, base64, validation |
| Failed to generate image: ${error.message} | exception | error | image-generation, error-wrapping, runtime |
| Failed to resolve image model: ${modelId} for provider: ${pr | exception | error | image-generation, model-resolution, runtime, validation |
| Provider extension "${providerId}" not registered | exception | error | provider, registry, initialization, config |
MODEL_RESOLUTION_FAILED Failed to resolve model: ${modelId} | error_code | error | model-resolution, plugins, runtime, config |
RECURSIVE_DEPTH_EXCEEDED Maximum recursive depth (${maxDepth}) exceeded at depth ${currentDepth} | error_code | error | recursion, plugin-engine, ai-core, non-streaming, safety-guard |
| [theme-contract] renderer theme must use the shared generate | exception | error | theme-contract, build-validation, tailwind, css, architecture |
| [theme-contract] renderer stylesheet ${fileName} cannot use | exception | error | theme-contract, build-validation, tailwind, css, semantic-tokens |
| [theme-contract] renderer TypeScript source ${fileName} cann | exception | error | theme-contract, build-validation, tailwind, typescript, semantic-tokens |
| [theme-contract] renderer TypeScript source ${fileName} cann | exception | error | theme-contract, build-validation, typescript, css-variables, runtime-theming |
| [theme-contract] ${sourceName} declares invalid custom prope | exception | error | theme-contract, build-validation, css, naming-convention, custom-properties |
| [theme-contract] ${sourceName} references invalid custom pro | exception | error | theme-contract, build-validation, css, naming-convention, custom-properties |
| [theme-contract] unsupported @import syntax: ${importValue} | exception | error | theme-contract, build-validation, css, import, syntax |
| [theme-contract] ${label} contains duplicate names | exception | error | theme-contract, build-validation, tokens, duplicates, configuration |
| [theme-contract] ${label} has an invalid or duplicate surfac | exception | error | theme-contract, build-validation, surface-pairs, duplicates, configuration |
| [theme-contract] ${label} pair ${surface} / ${foreground} is | exception | error | theme-contract, build-validation, surface-pairs, missing-variable, configuration |
| [theme-contract] ${label} imports must be exactly: ${expecte | exception | error | theme-contract, build-validation, css, import, cascade-order |
| [theme-contract] ${declaration.name} is defined twice in ${s | exception | error | theme-contract, css, build, validation |
| [theme-contract] ${label} is missing root declarations: ${mi | exception | error | theme-contract, css, build, validation |
| [theme-contract] ${label} references missing foundation vari | exception | error | theme-contract, css, build, validation |
| [theme-contract] ${mode} ${declaration.name} in ${declaratio | exception | error | theme-contract, css, build, validation |
| [theme-contract] ${mode} variable cycle: ${[...stack.slice(c | exception | error | theme-contract, css, build, validation |
| [theme-contract] foundation cannot declare runtime input ${d | exception | error | theme-contract, css, build, validation, layering |
| [theme-contract] foundation ${declaration.name} cannot depen | exception | error | theme-contract, css, build, validation, layering |
| [theme-contract] theme-input.css declares unregistered runti | exception | error | theme-contract, css, build, validation, registry |
| [theme-contract] runtime input ${declaration.name} cannot de | exception | error | theme-contract, css, build, validation, layering |
| [theme-contract] runtime input ${declaration.name} cannot de | exception | error | theme-contract, css, build, validation, layering, host |
| [theme-contract] shadcn.css cannot own runtime input ${decla | exception | error | theme-contract, css, build, validation, layering |
| [theme-contract] Shadcn ${declaration.name} cannot depend on | exception | error | theme-contract, css, build, validation, layering |
| [theme-contract] product ${declaration.name} has invalid dep | exception | error | theme-contract, css, build, validation, layering |
| [theme-contract] variable catalog is missing: ${missing.join | exception | error | theme-contract, css, build, validation, docs |
| [theme-contract] product variable ${token} overlaps the offi | exception | error | theme-contract, css, build, validation, registry |
| [theme-contract] Tailwind product color ${token} is missing | exception | error | theme-contract, css, build, validation, tailwind, registry |
| [theme-contract] compatibility color ${token} overlaps the c | exception | error | theme-contract, css, build, validation, registry, compatibility |
| [theme-contract] shadcn.css declares unregistered Shadcn var | exception | error | theme-contract, css, build, validation, registry |
| [theme-contract] product.css declares unregistered product v | exception | error | theme-contract, css, build, validation, registry |
| useImagePreviewTransform requires minZoom <= maxZoom | exception | error | react, hook, validation, image-preview |
| useImagePreviewTransform requires zoomStep > 0 | exception | error | react, validation, image-preview, zoom, typescript |
| ${name} must be used inside <TreeView /> | exception | error | react, context, tree-view, provider, typescript |
| Unsupported Linux packaging architecture: ${context.arch} | exception | error | build, electron-builder, linux, packaging, native-modules |
| ${baseLocalePath} not found. | exception | error | i18n, script, build, localization |
| Missing prebuilt packages for ${platform}-${arch}: ${missing | exception | critical | build, packaging, native-modules, pnpm, electron-builder |
| Unsupported Linux packaging architecture: ${context.arch} | exception | error | build, electron-builder, linux, packaging, native-modules |
| Missing value for ${flag} | exception | error | cli, script, args, validation |
| Invalid --header (expected "Name: value"): ${value} | exception | error | cli, script, args, validation, http-headers |
| Unknown flag: ${flag} | exception | error | cli, script, args, validation |
| Image generation failed | exception | error | ai, image-generation, runtime, vendor-error |
| Unsupported agent runtime type: ${entry.agentType} | exception | error | ai, agent, runtime, registry, validation |
| Agent not found: ${agentId} | exception | error | ai, agent, validation, task-scheduling |
| Channel not found: ${channelId} | exception | error | ai, agent, channel, validation, task-scheduling |
| Agent storage path escapes its root: ${target} | exception | critical | security, path-traversal, filesystem, agent, validation |
| Agent storage root must be a real directory: ${root} | exception | critical | security, filesystem, symlink, agent, validation |
| Agent storage path contains a symbolic link: ${current} | exception | critical | security, filesystem, symlink, path-traversal, agent |
| Agent storage path parent is not a directory: ${current} | exception | error | security, filesystem, agent, validation |
| Agent storage path resolves outside its root: ${target} | exception | critical | security, filesystem, symlink, path-traversal, agent |
| Agent storage directory must be a real directory: ${targetPa | exception | critical | security, filesystem, symlink, toctou, agent |
| Invalid agent id for data directory: ${agentId} | exception | critical | security, path-traversal, validation, agent, filesystem |
| Agent data file must be a real file: ${filePath} | exception | error | filesystem, security, symlink, agents, toctou |
| Agent data directory already exists: ${agentDataPath} | exception | error | filesystem, agents, state-conflict, duplicate |
| Agent data directory must be a real directory: ${agentDataPa | exception | error | filesystem, security, symlink, agents, integrity |
| Agent memory directory must be a real directory: ${memoryPat | exception | error | filesystem, security, symlink, agents, memory |
| Refusing to recursively remove unsafe agent data path: ${age | exception | critical | filesystem, security, symlink, destructive, agents |
| Cherry Assistant package definition is unavailable | exception | critical | agents, packaging, startup, builtin, config |
| Cherry Assistant package configuration is invalid: ${invalid | exception | error | agents, schema, config, builtin, validation |
| Required agent prompt file is not a regular file: ${exact} | exception | error | filesystem, security, symlink, agents, prompts |
| Required agent prompt file is not a regular file: ${matchedP | exception | error | filesystem, security, symlink, agents, prompts, case-insensitive |
| Failed to read required agent prompt file: ${filePath} | exception | error | filesystem, agents, prompts, io, cause |
| Agent not found: ${agentId} | exception | error | agents, jobs, schedules, lifecycle, not-found |
| Heartbeat workspace must be user-owned: ${workspace.workspac | exception | error | agents, heartbeat, schedules, workspaces, config |
| Agent session ${session.id} became invalid while starting ta | exception | error | agents, sessions, concurrency, jobs, state |
| Channel type "${this.channelType}" does not support sending | exception | warning | channels, adapters, capabilities, files, not-implemented |
| Channel not found: ${channelId} | exception | error | channels, not-found, sessions, lifecycle |
| Cannot stream on orphan session ${session.id} — its agent wa | exception | error | channels, sessions, lifecycle, orphan, agents |
| Discord bot token is required | exception | error | channels, discord, config, auth, credentials |
| Failed to get gateway URL: HTTP ${response.status} - ${error | exception | error | channels, discord, network, auth, rate-limit, retry |
| Discord API error ${url}: HTTP ${response.status} - ${errorT | exception | error | discord, http, rate-limit, auth, network |
| ${action} failed: ${unwrapped.msg || unwrapped.message || `c | exception | error | feishu, lark, api-envelope, permissions, business-error |
| Feishu WebSocket connection failed: ${error instanceof Error | exception | critical | feishu, websocket, credentials, network, lifecycle |
| Client is not connected | exception | error | feishu, lifecycle, null-state, race-condition |
| Feishu rejected the image upload for "${file.filename}" (no | exception | error | feishu, image-upload, size-limit, permissions, fallback |
| Feishu rejected the file upload for "${file.filename}" (no f | exception | error | feishu, file-upload, size-limit, permissions |
| Invalid JSON from Feishu registration API: ${text.slice(0, 2 | exception | error | feishu, registration, json-parse, network, proxy |
| Feishu registration begin failed: ${JSON.stringify(res)} | exception | error | feishu, registration, device-flow, schema, validation |
| Registration polling aborted | exception | info | feishu, registration, abort, cancellation, lifecycle |
| User denied the Feishu app registration | exception | warning | feishu, registration, oauth, user-denied, consent |
| Feishu app registration QR code expired | exception | warning | feishu, registration, expired, qr, oauth |
| Feishu registration poll error: ${error} | exception | error | feishu, registration, oauth, unknown-error, device-flow |
| Feishu app registration timed out | exception | warning | feishu, registration, timeout, device-flow, polling |
| QQ Bot AppID and ClientSecret are required | exception | error | qq, credentials, config, validation, lifecycle |
| Failed to get access token: HTTP ${response.status} | exception | error | qq, auth, http, token, network |
| Invalid token response from QQ API: ${errorText} | exception | error | qq, auth, schema, validation, token |
| QQ API request failed ${endpoint}: HTTP ${response.status} - | exception | error | qq, http, auth, rate-limit, api |
| Unknown chat type: ${type} | exception | error | qq, validation, chat-id, routing, type-guard |
| Slack bot token (xoxb-...) is required | exception | error | slack, credentials, config, validation, lifecycle |
| Failed to open Socket Mode connection: HTTP ${response.statu | exception | error | slack, socket-mode, network, authentication, config |
| Socket Mode connection failed: ${data.error ?? 'no URL retur | exception | error | slack, socket-mode, authentication, config, api-error |
| Slack API error ${method}: HTTP ${response.status} - ${error | exception | error | slack, web-api, network, rate-limiting, api-error |
| Slack API error ${method}: ${data.error ?? 'unknown error'} | exception | error | slack, web-api, api-error, config, authentication |
| Telegram bot token is required | exception | error | telegram, config, validation, startup |
| Bot is not connected | exception | error | telegram, lifecycle, race-condition, state |
| Bot is not connected | exception | error | wechat, lifecycle, race-condition, state, login |
| WeChat can only forward image files, not "${file.media_type} | exception | warning | wechat, file-transfer, capability-limit, validation |
| ${label} returned non-JSON (HTTP ${response.status}) | exception | error | wechat, network, api-error, protocol, gateway |
| ${label} failed with HTTP ${response.status} | exception | error | wechat, network, api-error, http-status, protocol |
| ${label} failed | exception | error | wechat, api-error, protocol, session, error-code |
| Invalid credentials format in ${tokenPath} | exception | error | wechat, credentials, filesystem, validation, corruption |
| Login cancelled | exception | info | wechat, login, abort, cancellation, lifecycle |
| QR login confirmed, but the API did not return bot credentia | exception | error | wechat, login, qr, protocol, server-error |
| QR login failed after ${MAX_QR_RETRIES} expired QR codes. Us | exception | error | wechat, login, qr, user-action-required, retry-exhausted |
| Failed to upload image to WeChat CDN | exception | error | wechat, network, cdn, image-upload, channels |
| Message text cannot be empty. | exception | error | wechat, validation, message, channels, precondition |
| Session workspace is unavailable: ${workspaceRoot} | exception | error | filesystem, workspace, session, enoent, channels |
| File not found in workspace: ${userPath} | exception | error | filesystem, workspace, file-not-found, enoent, channels |
| Path is outside the workspace: ${userPath} | exception | error | security, filesystem, path-traversal, workspace, symlink, channels |
| File not found: ${displayPath} | exception | error | filesystem, race-condition, toctou, file-not-found, enoent, channels |
| Not a regular file: ${displayPath} | exception | error | filesystem, validation, not-a-file, channels |
| File exceeds the ${MAX_FILE_SIZE_BYTES} byte limit (${snapsh | exception | error | filesystem, file-size, validation, limit, channels |
| File exceeds the ${MAX_FILE_SIZE_BYTES} byte limit (${data.l | exception | error | filesystem, race-condition, toctou, file-size, validation, channels |
| File not found: ${userPath} | exception | error | filesystem, file-not-found, enoent, channels |
| Local model inference is not supported on Intel Mac (darwin | exception | critical | platform, darwin, intel-mac, onnxruntime, local-model, inference |
| Path traversal detected: target path must be direct child of | validation | error | security, path-traversal, mcp, package-install |
| Unsafe DXT entry path (zip-slip): ${name} | validation | error | security, zip-slip, archive, mcp, package-install, path-traversal |
| Invalid command: command must be a non-empty string | validation | error | validation, mcp, command-injection, manifest |
| Invalid command: command cannot be empty | validation | error | validation, mcp, command-injection, manifest |
| Invalid command: path traversal detected in "${command}" | validation | error | security, path-traversal, mcp, command-injection, manifest |
| Invalid command: null byte detected | validation | error | security, null-byte, mcp, command-injection, manifest |
| Invalid args: must be an array | validation | error | validation, mcp, manifest, type-error |
| Invalid args: argument at index ${index} must be a string | validation | error | validation, mcp, manifest, type-error |
| Invalid args: null byte detected in argument at index ${inde | validation | error | security, null-byte, mcp, command-injection, manifest |
| Invalid args: path traversal detected in argument at index $ | validation | error | security, path-traversal, mcp, manifest, validation |
| Invalid MCP package env: null byte detected in environment v | validation | error | security, null-byte, mcp, manifest, validation, env |
| Invalid MCP package env: environment variable "${key}" is no | validation | error | security, env, denylist, mcp, manifest, validation, code-injection |
| Invalid MCP package env: null byte detected in value of envi | validation | error | security, null-byte, mcp, manifest, validation, env, variable-substitution |
| Invalid MCP package upload: file name must be a string | validation | error | mcp, upload, validation, ipc, typescript |
| Invalid MCP package upload: file name cannot be empty | validation | error | mcp, upload, validation, ipc |
| Invalid MCP package upload: file name cannot contain leading | validation | warning | mcp, upload, validation, ipc, whitespace |
| Invalid MCP package upload: file name cannot contain path se | validation | error | security, path-traversal, mcp, upload, validation, ipc |
| Invalid MCP package upload: file name contains unsupported c | validation | error | mcp, upload, validation, ipc, filename |
| Invalid MCP package upload: expected a .${packageFormat} fil | validation | error | mcp, upload, validation, ipc, file-format |
| Invalid MCP package upload: file buffer cannot be empty | validation | error | mcp, upload, validation, ipc |
| Invalid MCP package upload: file exceeds the 100 MiB size li | validation | error | mcp, upload, validation, ipc, size-limit |
| ${packageLabel} file not found | exception | error | mcp, upload, filesystem, race-condition |
| manifest.json not found in ${packageLabel} file | exception | error | mcp, manifest, upload, packaging, zip |
| Invalid manifest: missing manifest_version | validation | error | mcp, manifest, validation, mcpb |
| Invalid manifest: missing dxt_version | validation | error | mcp, manifest, validation, dxt |
| Invalid manifest: missing name | validation | error | mcp, manifest, validation |
| Invalid manifest: missing version | validation | error | mcp, manifest, validation |
| Invalid manifest: missing server configuration | validation | error | mcp, manifest, validation |
| Invalid manifest: missing server.mcp_config | validation | error | mcp, manifest, validation, mcp-config |
| Invalid manifest: missing server.mcp_config.command | validation | error | mcp, manifest-validation, package-install, configuration |
| Invalid manifest: server.mcp_config.args must be an array | validation | error | mcp, manifest-validation, package-install, configuration |
| Invalid tool ID format: ${toolId} | validation | error | mcp, tool-calling, validation, runtime |
| MCP runtime is stopping | exception | warning | mcp, lifecycle, shutdown, race-condition |
| MCP server ${server.name} is disabled | validation | warning | mcp, server-state, configuration, runtime |
| Failed to start in-memory server: ${error.message} | exception | error | mcp, in-memory, builtin-server, connection |
| Invalid server type | validation | error | mcp, transport, configuration, server-type |
| npx not found in PATH and bundled bun is not available. This | exception | error | mcp, npx, nodejs, dependency, environment |
| ${effectiveCommand} not found in PATH and bundled version is | exception | error | mcp, uv, python, dependency, environment |
| Either baseUrl or command must be provided | validation | error | mcp, transport, configuration, validation |
| OAuth authentication failed: ${oauthError instanceof Error ? | exception | error | mcp, oauth, authentication, network |
| Invalid JSON tool arguments for ${name}: ${(e as Error).mess | validation | error | mcp, tool-calling, json-parsing, validation |
| MCP tool is disabled: ${name} | validation | warning | mcp, tool-calling, policy, configuration, access-control |
| Failed to get resource ${uri} from server: ${server.name}: $ | exception | error | mcp, resource, server-error, runtime |
| MCP server not found: ${mcpId} | exception | error | mcp, bridge-server, not-found, configuration |
| Failed to read OAuth storage: ${error instanceof Error ? err | exception | error | mcp, oauth, storage, file-io, corruption |
| Failed to write OAuth storage: ${error instanceof Error ? er | exception | error | mcp, oauth, storage, file-io, disk-space |
| No code verifier saved for session | exception | error | mcp, oauth, pkce, storage, authentication |
| Failed to clear OAuth storage: ${error instanceof Error ? er | exception | warning | mcp, oauth, storage, file-io, cleanup |
| read_file returned an unexpected output type | exception | error | mcp, invariant, ai-sdk, defensive-check |
| Agent memory file must be a real file: ${exact} | exception | error | security, filesystem, symlink-guard, agent-memory |
| Agent memory file must be a real file: ${matchedPath} | exception | error | security, filesystem, symlink-guard, case-insensitive, agent-memory |
ErrorCode.MethodNotFound Unknown tool: ${toolName} | exception | error | mcp, protocol-error, method-not-found |
ErrorCode.InvalidParams Unknown action "${action}", expected update/append/search | validation | error | mcp, validation, invalid-params, agent-memory |
ErrorCode.InternalError Agent not found: ${this.agentId} | exception | error | mcp, lifecycle, agent-memory, internal-error, stale-reference |
| Agent memory directory must be a real directory: ${memoryDir | exception | error | security, filesystem, symlink-guard, agent-memory |
| Agent memory file must be a real file: ${filePath} | exception | error | security, filesystem, toctou, symlink-guard, agent-memory |
| Agent journal must be a regular file: ${journalPath} | exception | error | security, filesystem, toctou, agent-memory |
| Failed to read journal at ${journalPath}: ${(err as Error).m | exception | error | filesystem, io-error, permissions, agent-memory |
MethodNotFound Unknown tool: ${toolName} | error_code | error | mcp, protocol-error, method-not-found, assistant |
InternalError Product manifest is unavailable | error_code | error | mcp, filesystem, manifest, paths, internal-error, assistant |
InvalidParams Unsupported product_info argument: ${unsupportedArgument} | error_code | warning | mcp, input-validation, product-info, invalid-params |
| Rate limit exceeded | exception | warning | mcp, brave-search, rate-limit, network |
| Brave API error: ${response.status} ${response.statusText}\n | exception | error | network, api, brave-search, http |
| Brave API error: ${webResponse.status} ${webResponse.statusT | exception | error | network, api, brave-search, http, local-search |
| BRAVE_API_KEY is required for Brave Search MCP server | exception | critical | config, brave-search, api-key, mcp-server |
| No arguments provided | exception | warning | mcp, validation, brave-search, rpc |
| Invalid arguments for brave_web_search | exception | warning | mcp, validation, brave-search, type-guard |
| Invalid arguments for brave_local_search | exception | warning | mcp, validation, brave-search, local-search, type-guard |
| MCP browser window not found after open | exception | error | electron, window-manager, browser-tool, race |
| Tab ${freshTabId} was created but not found - it may have be | exception | error | electron, browser-tool, race, tabs, webcontents |
| Tab ${newTabId} was created but not found - it may have been | exception | error | electron, browser-tool, race, tabs, webcontents |
| Unknown script error | exception | warning | browser-tool, cdp, debug, eval |
| Window not found for ${privateMode ? 'private' : 'normal'} m | exception | error | electron, browser-tool, tabs, window-manager |
| Tab ${tabId} not found | exception | error | electron, browser-tool, tabs, validation |
| Tool not found | exception | warning | mcp, browser-tool, validation, rpc |
| Invalid duration: "${duration}". Use formats like '30m', '2h | exception | warning | validation, cron, scheduling, duration, cherry-autonomy |
InvalidParams Unknown action "${action}", expected add/list/remove | validation | warning | validation, cron, scheduling, mcp, cherry-autonomy |
MethodNotFound Unknown tool: ${toolName} | error_code | warning | validation, mcp, routing, cherry-autonomy |
InternalError Agent not found: ${this.agentId} | error_code | critical | mcp, config, agent, internal-error, lifecycle |
| Document conversion produced no text | exception | error | document-conversion, anydoc, empty-output, validation |
| Unknown tool: ${name} | exception | error | mcp, didi, unknown-tool, dispatch |
| HTTP ${response.status}: ${errorText} | http | error | network, didi, http-error, api-key |
| API Error: ${JSON.stringify(data.error)} | exception | error | network, didi, api-error, json-rpc |
| DifyKnowledgeServer requires at least one argument | validation | critical | dify, configuration, missing-argument, startup |
| Invalid arguments:\n${errorDetails} | validation | error | dify, validation, zod, invalid-arguments |
| Unknown tool: ${name} | exception | error | dify, mcp, unknown-tool, dispatch |
| API request failed, status code ${response.status}: ${errorT | exception | error | dify, network, http-error, api-key |
| Invalid response format from Dify API: ${JSON.stringify(sear | exception | error | dify, response-validation, schema-mismatch, api |
| Unknown in-memory MCP server: ${name} | exception | critical | mcp, factory, configuration, unknown-server, startup |
| Failed to fetch ${url}: ${e.message} | exception | error | network, fetch, mcp-tool, dns |
| Failed to fetch ${url}: Unknown error | exception | error | error-handling, fetch, defensive |
| Tool not found | exception | error | mcp-tool, dispatch, api-contract |
| Unknown tool: ${name} | exception | error | mcp-tool, dispatch, filesystem |
| Invalid arguments for delete: ${parsed.error} | validation | warning | zod, validation, mcp-tool, filesystem |
| Path not found: ${targetPath} | exception | warning | filesystem, enoent, delete, mcp-tool |
| Directory not empty: ${targetPath}. Use recursive=true to de | exception | warning | filesystem, enotempty, delete, mcp-tool |
| Failed to delete: ${error.message} | exception | error | filesystem, permissions, delete, error-handling |
| Invalid arguments for edit: ${parsed.error} | validation | warning | zod, validation, edit, mcp-tool, filesystem |
| Path is not a file: ${filePath} | exception | warning | filesystem, edit, mcp-tool, type-mismatch |
| File not found: ${filePath} | exception | warning | filesystem, enoent, edit, mcp-tool |
| Invalid arguments for glob: ${parsed.error} | validation | warning | zod, validation, glob, mcp-tool, filesystem |
| Path is not a directory: ${validPath} | exception | warning | filesystem, glob, mcp-tool, type-mismatch |
| Directory not found: ${validPath} | exception | warning | filesystem, enoent, glob, mcp-tool |
| Pattern cannot be empty | validation | warning | filesystem, glob, validation, mcp-tool |
| Invalid arguments for grep: ${parsed.error} | validation | warning | zod, validation, grep, mcp-tool, filesystem |
| Pattern is required for grep | validation | warning | filesystem, grep, validation, mcp-tool |
| Invalid regex pattern: ${data.pattern} | validation | warning | regex, grep, validation, mcp-tool, filesystem |
| Invalid arguments for ls: ${parsed.error} | validation | warning | zod, validation, ls, mcp-tool, filesystem |
| Invalid arguments for read: ${parsed.error} | validation | warning | zod, validation, read, mcp-tool, filesystem |
| Path is not a file: ${filePath} | exception | error | filesystem, validation, mcp, read-tool |
| File not found: ${filePath} | exception | error | filesystem, validation, mcp, read-tool, enoent |
| Cannot read binary file: ${filePath} | exception | error | filesystem, validation, mcp, read-tool, binary |
| Invalid offset: ${offset + 1}. File has ${lines.length} line | validation | error | filesystem, validation, mcp, read-tool, pagination |
| Invalid arguments for write: ${parsed.error} | validation | error | filesystem, validation, zod, mcp, write-tool |
| Failed to create parent directory: ${error.message} | exception | error | filesystem, permissions, mcp, write-tool, mkdir |
| Failed to write file: ${error.message} | exception | error | filesystem, permissions, mcp, write-tool, enospc |
| Access denied: Path is outside the configured workspace root | exception | error | filesystem, security, validation, mcp, path-traversal, symlink |
| old_string and new_string must be different | validation | error | filesystem, validation, mcp, edit-tool, fuzzy-match |
| old_string not found in content | exception | error | filesystem, validation, mcp, edit-tool, fuzzy-match |
| Found multiple matches for old_string. Provide more surround | exception | error | filesystem, validation, mcp, edit-tool, fuzzy-match |
InternalError Failed to ensure memory path: ${error instanceof Error ? error.message : String( | error_code | error | mcp, memory-server, filesystem, permissions, initialization, mcp-error |
InvalidParams Entity with name ${o.entityName} not found | exception | error | mcp, memory-server, validation, knowledge-graph, mcp-error |
MethodNotFound Unknown tool: ${name} | exception | error | mcp, method-not-found, memory-server, routing |
MethodNotFound Tool ${name} not found | exception | error | mcp, method-not-found, python-server, routing |
InvalidParams Invalid arguments for python_execute: ${parsed.error.message} | exception | error | mcp, validation, python-server, zod, invalid-params, latent-bug |
InternalError Python execution failed: ${errorMessage} | exception | error | mcp, internal-error, python-server, pyodide, catch-all |
| Invalid thought: must be a string | exception | warning | mcp, validation, sequential-thinking, soft-error |
| Invalid thoughtNumber: must be a number | exception | warning | mcp, validation, sequential-thinking, soft-error |
| Invalid totalThoughts: must be a number | exception | warning | mcp, validation, sequential-thinking, soft-error |
| Invalid nextThoughtNeeded: must be a boolean | exception | warning | mcp, validation, sequential-thinking, soft-error, boolean-coercion |
MethodNotFound Unknown tool: ${toolName} | exception | error | mcp, method-not-found, skills-server, routing, soft-error |
InvalidParams 'query' is required for search_skills | exception | error | mcp, validation, skills-server, invalid-params, soft-error |
| The selected model doesn't support images, and Cherry Studio | exception | error | attachments, ocr, vision, user-facing, pre-provider-guard |
| VertexAI requires iam-gcp auth configuration. | exception | error | provider, vertex-ai, auth, iam-gcp, configuration |
| DashScope provider requires a non-empty `baseURL`. An empty | exception | error | config, validation, dashscope, base-url, electron |
| Unsupported DashScope image model: ${descriptor.id} | exception | error | model-routing, dashscope, image-generation, switch-dispatch |
| Missing modelDescriptor for DashScope model: ${input.modelId | exception | error | internal, wiring, model-descriptor, dashscope |
0 DashScope async submit returned no task_id | exception | error | api, dashscope, async, response-shape, routing |
| DashScope task ${status.toLowerCase()} | exception | error | task-failed, dashscope, async, polling, content-moderation |
| Task polling timeout | exception | error | timeout, polling, dashscope, async |
| DashScope API error: ${response.status} - ${errorText} | exception | error | api-error, http, dashscope, auth, quota |
| DashScope API request timeout after ${timeout / 1000}s | exception | error | timeout, network, dashscope, fetch |
| DMXAPI provider requires a non-empty `baseURL` to build the | exception | error | config, validation, dmxapi, base-url, image-transport |
| DMXAPI provider requires a non-empty `baseURL`. An empty val | exception | error | config, validation, dmxapi, base-url, electron |
| Gemini image models do not support mask-based image editing. | exception | error | unsupported-feature, gemini, mask, image-editing, gateway |
| ${provider} returned a task id but does not implement pollin | exception | error | transport, internal, contract, polling, image-generation |
| local-embedding provider only supports text embeddings, not | exception | error | unsupported-feature, local-embedding, capability, routing |
| the local embedding model is not fully downloaded | exception | error | download, local-embedding, cache, model-files |
| responseBody || response.statusText | exception | error | api-error, http, minimax, auth, quota |
| Invalid JSON response from MiniMax | exception | error | parse, json, minimax, proxy, response-shape |
| parsed.base_resp.status_msg || `MiniMax error ${parsed.base_ | exception | error | api-error, minimax, business-error, content-moderation, base-resp |
| ModelScope provider requires a non-empty `baseURL`. | exception | error | config, validation, modelscope, base-url |
| result.message || 'Task failed' | exception | error | task-failed, modelscope, async, polling, content-moderation |
| Task polling timeout | exception | error | timeout, polling, modelscope, async |
| ModelScope API error: ${response.status} - ${errorText} | exception | error | network, api, modelscope, http, image-generation |
| ModelScope API request timeout after ${timeout / 1000}s | exception | error | timeout, network, modelscope, abort, image-generation |
| typeof failure === 'string' ? failure : JSON.stringify(failu | exception | error | moonshot, kimi, formula, tool, api |
| imageModel | exception | error | model-not-found, moonshot, ai-sdk, configuration, image-generation |
| Use embeddingModel() for embedding endpoint type | exception | error | newapi, endpoint-type, configuration, misroute |
| Use rerankingModel() for jina-rerank endpoint type | exception | error | newapi, endpoint-type, configuration, misroute, rerank |
| errorData.error || 'Image generation failed' | exception | error | ollama, image-generation, local-server, configuration |
| OVMS provider requires a non-empty `baseURL`. An empty value | exception | error | validation, configuration, ovms, base-url, fail-fast |
| errorData.error?.message || 'Image generation failed' | exception | error | ovms, image-generation, network, local-server |
| PPIO provider requires a non-empty `baseURL`. An empty value | exception | error | validation, configuration, ppio, base-url, fail-fast |
| PPIO API error: ${response.status} - ${errorText} | exception | error | network, api, ppio, http, image-generation |
| PPIO API request timeout after ${timeout / 1000}s | exception | error | timeout, network, ppio, abort, image-generation |
| Unknown model: ${input.modelId} | exception | error | ppio, model-not-found, configuration, registry, image-generation |
| result.task.reason || 'Task failed' | exception | error | ppio, task-failed, terminal, image-generation, policy |
| Task polling timeout | exception | error | ppio, timeout, polling, image-generation |
| responseBody || response.statusText | exception | error | siliconflow, api, http, ai-sdk, image-generation |
| Invalid JSON response from SiliconFlow | exception | error | siliconflow, parse-error, json, network, image-generation |
| Image generation job: provider '${providerId}' not found | exception | error | job-handler, provider-not-found, database, image-generation |
| Image generation job: model '${modelId}' not found for provi | exception | error | job-handler, model-not-found, database, image-generation |
| Image generation job: no async transport for '${sdkConfig.pr | exception | error | job-handler, transport-registry, configuration, image-generation, misroute |
| Image generation submit for '${sdkConfig.modelId}' returned | exception | error | |
| Image generation for '${sdkConfig.modelId}' completed but re | exception | error | |
| Image transport returned a task id but does not implement po | exception | error | |
| Image generation produced ${urls.length} URL(s) but all down | exception | error | |
| String(firstPublisherError) | exception | error | |
| One or more Vertex AI publisher requests failed | exception | error | |
| Vertex AI model listing failed: ${reason} | exception | error | |
| Expected JSON object with 'reviews' key | http | error | |
| claude -p exited {result.returncode}\nstderr: {result.stderr | exception | error | |
| SKILL.md missing frontmatter (no opening ---) | validation | error | |
| SKILL.md missing frontmatter (no closing ---) | validation | error |