ErrLookup › nanocoai/nanoclaw
nanocoai/nanoclaw
A lightweight alternative to OpenClaw that runs in containers for security. Connects to WhatsApp, Telegram, Slack, Discord, Gmail and other messaging apps,, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK · TypeScript · 355 source files
Analyzed at 294ef2aee8 on 2026-08-28. 160 documented errors.
| Code / Message | Type | Severity | Tags |
|---|---|---|---|
| --stdin-json input exceeds ${MAX_STDIN_JSON_BYTES} bytes | validation | error | docker, driver-capabilities, auxiliary-containers, container-runner |
| --stdin-json input is empty | validation | error | docker-labels, group-folder, spec-validation, container-runner |
| --stdin-json input is not valid JSON | validation | error | docker, memory-limit, env-var, configuration |
| --stdin-json input must be one JSON object | validation | error | docker, memory-limit, env-var, number-overflow |
| ${settingsFile} hooks must be a JSON object | validation | error | json, manifest, type-validation |
| ${settingsFile} hooks.SessionStart must be an array | validation | critical | security, secrets, mcp, templates |
| Unknown provider: ${name}. Registered: ${known} | validation | error | templates, filesystem, not-found |
| Channel '${channelKey}' declares engageMode 'pattern' withou | validation | error | templates, migration, version-change |
| engage_mode 'pattern' requires --engage-pattern (use "." to | validation | error | templates, manifest, not-found |
| session_mode 'per-thread' requires honored thread ids, but t | validation | error | json, manifest, parse-error |
| engage_mode '${w.engage_mode}' can never engage on channel ' | validation | error | security, filesystem, symlink, templates |
| MissingChannelAdapterError(channelType, instance) | exception | error | security, filesystem, hardening, path-traversal |
| chat-sdk bridge instance ${JSON.stringify(config.instance)} | validation | error | security, filesystem, symlink, templates |
| no verb "${verbArg}" on ${res.plural} — run `ncl ${res.plura | validation | error | security, filesystem, limits, templates |
| --${column.name.replace(/_/g, '-')} must be a number | validation | error | security, filesystem, limits, templates |
| --${column.name.replace(/_/g, '-')} must be true or false | validation | error | cli, validation, boolean |
| ${def.name} id is required | validation | error | cli, missing-argument, crud |
| ${def.name} not found: ${id} | validation | error | cli, not-found, crud |
| ${col.name} must be one of: ${col.enum.join(', ')} | validation | error | cli, enum, validation, crud |
| --${col.name.replace(/_/g, '-')} is required | validation | error | cli, missing-argument, crud |
| nothing to update — provide at least one of: ${updatableCols | validation | error | cli, no-op, crud |
| unknown flag --${key.replace(/_/g, '-')} | validation | error | cli, argument-validation, unknown-flag, strict-mode |
| ${flag} is required | validation | error | cli, argument-validation, required-field |
| ${flag} requires a value | validation | error | cli, argument-validation, missing-value, flag-parsing |
| ${flag} must be a number, got "${v}" | validation | error | cli, argument-validation, type-coercion, number |
| ${flag} must be true or false, got "${v}" | validation | error | cli, argument-validation, boolean, type-coercion |
| ${flag} must be valid JSON | validation | error | cli, argument-validation, json, shell-quoting |
| ${flag} must be one of: ${def.enum.join(', ')} | validation | error | cli, argument-validation, enum, allowed-values |
| ${msg} ${usage} | validation | error | cli, usage, error-wrapping, argument-validation |
| --folder is required | validation | error | cli, missing-argument, groups |
| group folder 'groups/${folder}' already exists on disk but n | validation | error | cli, groups, filesystem, state-mismatch |
| --id is required | validation | error | cli, missing-argument, groups, delete |
| group not found: ${id} | validation | error | cli, not-found, groups, delete |
| No container config for group: ${id} | validation | error | cli, not-found, container-config |
| --cli-scope must be one of: disabled, group, global | validation | error | cli, enum-validation, container-config |
| Nothing to update — provide at least one of: --provider, --m | validation | error | cli, validation, container-config |
| --name is required | validation | error | cli, validation, mcp |
| MCP server "${name}" not found | validation | error | mcp, cli, not-found |
| Provide --apt <pkg> or --npm <pkg> | validation | error | cli, missing-argument, ncl, packages |
| Provide --host <host-path> and --container <container-path> | validation | error | cli, missing-argument, ncl, mounts |
| --user is required | validation | error | cli, missing-argument, members |
| --group is required | validation | error | cli, missing-argument, members |
| member not found | validation | error | cli, not-found, members, idempotency |
| --channel-type, --platform-id and --text are required | validation | error | cli, missing-argument, messaging-groups |
| no messaging group for ${channelType} ${platformId} — create | validation | error | cli, not-found, messaging-groups, wiring |
| --from is required | validation | error | cli, missing-argument, policies |
| --to is required | validation | error | cli, missing-argument, policies |
| --approver is required | validation | error | cli, missing-argument, policies, approvals |
| --from and --to must differ (self-messages are never gated) | validation | error | cli, invalid-argument, policies, validation |
| source agent group not found: ${from} | validation | error | cli, not-found, policies, agent-groups |
| target agent group not found: ${to} | validation | error | cli, not-found, policies, agent-groups |
| policy not found | validation | error | cli, not-found, policies, idempotency |
| --user is required | validation | error | cli, missing-argument, roles, permissions |
| --role must be owner or admin | validation | error | cli, invalid-argument, roles, validation |
| owner role is always global (do not pass --group) | validation | error | cli, roles, permissions, validation |
| --role is required | validation | error | cli, roles, validation |
| role not found | validation | error | cli, roles, not-found, permissions |
| --status must be pending or paused | validation | error | cli, tasks, validation, status-filter |
| session not found: ${sessionId} | validation | error | cli, tasks, session, not-found |
| task series id is required | validation | error | cli, tasks, validation, missing-id |
| --group is required | validation | error | cli, tasks, validation, agent-group |
| --prompt is required | validation | error | cli, tasks, validation, prompt |
| messaging group not found: ${id} | validation | error | cli, ncl, wiring, not-found, validation |
| --threads must be true or false, got "${v}" | validation | error | cli, ncl, argument-validation, threads |
| provide --messaging-group-id, or --channel-type and --platfo | validation | error | cli, ncl, wiring, missing-argument |
| no messaging group for ${channelType} ${platformId} — create | validation | error | cli, ncl, wiring, not-found |
| provide --agent-group-id or --agent-group <folder> | validation | error | cli, ncl, wiring, missing-argument |
| no agent group "${ref}" (by id or folder) | validation | error | cli, ncl, wiring, not-found |
| ${name} must be one of: ${allowed.join(', ')} | validation | error | cli, ncl, enum-validation, wiring |
| agent group not found: ${values.agent_group_id} | validation | error | cli, ncl, wiring, not-found, race-condition |
| bad request shape | validation | error | cli, socket, json, protocol-validation |
| --stdin-json input exceeds ${MAX_STDIN_JSON_BYTES} bytes | validation | error | cli, stdin-json, size-limit |
| --stdin-json input is empty | validation | error | cli, stdin-json, empty-input |
| --stdin-json input is not valid JSON | validation | error | cli, stdin-json, json-parse |
| --stdin-json input must be one JSON object | validation | error | cli, stdin-json, type-validation |
| --stdin-json key "__proto__" is not allowed | validation | error | cli, stdin-json, security, prototype-pollution |
| --stdin-json key "${key}" is also supplied on argv | validation | error | cli, stdin-json, argument-conflict |
| --stdin-json key "${key}" conflicts with argv key "${argvKey | validation | error | cli, stdin-json, argument-conflict, normalization |
| --stdin-json keys "${priorStdinKey}" and "${key}" conflict a | validation | error | cli, stdin-json, duplicate-key, normalization |
| server name must be 1-64 characters of letters, digits, "_" | validation | error | mcp, container-config, validation, prototype-pollution |
| unsupported transport "sse" | validation | error | mcp, transport, deprecated, container-config |
| type must be "stdio", "http", or "streamable-http" | validation | error | mcp, transport, validation, container-config |
| type "stdio" requires command | validation | error | mcp, config-validation, container-config |
| type "http" requires url | validation | error | mcp, config-validation, container-config |
| MCP instructions must be a string | validation | error | mcp, config-validation, type-mismatch |
| Provide exactly one of command or url | validation | error | mcp, config-validation, mutually-exclusive-fields |
| args, env, and cwd are only valid with command | validation | error | mcp, config-validation, transport-mismatch |
| url must be a valid HTTP(S) URL | validation | error | mcp, url-parsing, config-validation |
| url must use HTTPS (plain HTTP is allowed only for localhost | validation | error | mcp, https, security-policy, url-validation |
| url must not contain credentials or fragments; use OneCLI fo | validation | error | mcp, credentials, security-policy, url-validation |
| url query parameter "${key}" looks like a credential; use On | validation | error | mcp, credentials, security-policy, url-validation |
| headers is only valid with url | validation | error | mcp, config-validation, transport-mismatch |
| args must be a JSON array of strings | validation | error | mcp, config-validation, type-mismatch |
| env key ${JSON.stringify(key)} must be a valid environment v | validation | error | mcp, config-validation, environment-variables |
| ${flag} must be a JSON object with string values | validation | error | mcp, config-validation, type-mismatch |
| cwd must be ./path, ${PLUGIN_ROOT}[/path], or ${PLUGIN_DATA} | validation | error | mcp, config-validation, path-validation |
| cwd escapes the plugin root | validation | error | mcp, path-traversal, security-policy, config-validation |
| agent group "${groupName}" has invalid runtime_tier "${raw}" | validation | error | agent-groups, db-integrity, runtime-config |
| Agent group not found: ${agentGroupId} | error_code | critical | agent-groups, spawn, db-integrity |
| Container config not found for agent group: ${agentGroupId} | error_code | critical | container-config, db-integrity, spawn |
| invalid --recurrence: ${msg} | validation | error | cron, scheduling, input-validation, tasks |
| --prompt is required | validation | error | scheduling, required-field, tasks, input-validation |
| --recurrence has no upcoming run: ${recurrence} | validation | error | cron, scheduling, tasks |
| invalid task id: ${series} | validation | error | validation, path-traversal, filesystem, tasks |
| agent group not found: ${agentGroupId} | validation | error | database, lookup, agent-groups, tasks |
| ${NANOCLAW_EXTENSION_NS}/context/instructions.md must be a r | validation | error | templates, filesystem, symlink |
| Invalid template ref: "${ref}" | validation | error | templates, input-validation |
| Template ref must be relative to the templates directory: "$ | validation | error | templates, path-validation, security |
| Plugin rejected: "${rel}" is not a regular file or directory | validation | error | filesystem, plugin, validation, symlink |
| No version field in ${pkgPath} | exception | error | |
| ${parsed.error} | validation | error | mcp, self-mod, validation, agent-container |
unknown-command unknownCommandMessage(req.command) | error_code | error | cli, ncl, unknown-command, dispatch |
forbidden Wiring not found for this conversation. | error_code | error | cli, ncl, wirings, forbidden, group-scope |
handler-error session not found: ${req.args.id} | error_code | error | cli, ncl, sessions, forbidden, group-scope |
approval-pending Approval request sent to admin. You will be notified of the result. | error_code | info | cli, approval, pending, guard, ncl |
invalid-args ${errMsg(e)} | error_code | error | cli, ncl, invalid-args, validation |
| Failed to chmod ncl socket (continuing) | console | warning | ncl, unix-socket, permissions, startup |
| ncl CLI server connection error | console | info | ncl, unix-socket, connection, transport |
| Failed to write ncl CLI response | console | warning | ncl, unix-socket, write-failure, transport |
| Dropping invalid stored MCP server | console | warning | mcp, container-config, validation, config-corruption |
| wakeContainer failed — host-sweep will retry | console | warning | docker, container-spawn, wake, retry |
| Failed to list existing sessions for adoption | console | warning | docker, adoption, startup, supervision |
| Delivery batch-preview hook failed | console | warning | delivery, hooks, extensibility |
| Post-delivery hook failed | console | warning | delivery, hooks, side-effects |
| Failed to append task run log | console | warning | tasks, run-log, filesystem |
| Failed to clean up orphaned containers | console | warning | docker, orphan-cleanup, startup |
| Failed to clean up pre-seam containers | console | warning | docker, legacy-containers, upgrade, cleanup |
| Failed to list install-owned networks | console | warning | docker, networks, cleanup |
| Container exited non-zero | console | warning | docker, container-exit, crash, stderr |
| Could not read group standing instructions; omitting persona | console | warning | persona, filesystem, symlink, group-config |
| Failed to clear orphan processing claims | console | warning | sqlite, host-sweep, processing-ack, locking |
| inbox-safety: failed to resolve inbox dir | console | warning | filesystem, attachments, inbox, path-safety |
| Malformed outbound row — delivering best-effort | console | warning | sqlite, outbound, schema-validation, delivery |
| Failed to reconcile Claude settings; leaving them unchanged | console | info | claude-settings, migration, filesystem, group-init |
| agent-route: failed to inspect source outbox dir | console | warning | filesystem, agent-to-agent, attachments, enoent |
| Stripping cwd from stored MCP server without plugin provenan | console | warning | mcp, container-config, plugin-provenance |
| Stored skill selection is not "all" or a string list; inlini | console | warning | skills, container-config, json-parsing |
| Shared skill not symlinked: real entry occupies the path (te | console | warning | skills, symlink, container-mount, stale-state |
| Pre-existing FK violations carried through migration (not in | console | warning | database, migration, foreign-keys, sqlite |
| Delivery action denied by guard | console | warning | guard, permissions, delivery, authorization |
| Message delivery failed, will retry | console | warning | delivery, retry, channel-adapter, network |
| Unknown system action | console | warning | delivery, system-action, registry, unknown-action |
| Container name collision: existing container is not this ses | console | error | docker, container, name-collision, isolation |
| Killing container past absolute ceiling | console | error | sweep, sla, heartbeat, container-kill, stuck-session |
| Killing container — message claimed then silent | console | error | sweep, claim-stuck, processing-ack, container-kill |
| Message marked as failed after max retries | console | warning | retries, max-retries, poison-message, sweep |
| inbox-safety: rejecting unsafe inbox path | console | warning | security, symlink, path-traversal, attachments, inbox |
| inbox-safety: inbox dir escaped inbox root | console | warning | security, realpath, bind-mount, attachments, inbox |
| reject-with-reason: cannot reach approver, finalizing plain | console | warning | approvals, dm, delivery-adapter, fallback |
| Ignoring unauthorized approval response | console | warning | approvals, authorization, button-click |
| No approval handler registered — row dropped | console | warning | approvals, handler-missing, registry |
| Echo fan write failed | console | warning | cross-session, sqlite, fan-out, partial-failure |
| mount ${mount.hostPath} must be a canonical absolute path (n | validation | error | mount, path-validation, container, security |
| duplicate containerPath ${mount.containerPath} on ${containe | validation | error | mount, duplicate, spec-validation, container |
| mount ${mount.hostPath} must be classed ${required}, not ${m | validation | critical | mount, security, policy, classification |
| install-surface mount ${mount.hostPath} must be ro | validation | critical | mount, security, read-only, policy |
| identity-material mount ${mount.hostPath} invalid on role ${ | validation | critical | mount, security, credentials, policy |
| mount ${mount.hostPath} violates class ${mount.class} scope | validation | error | mount, policy, scope, security |
| secret-shaped env '${key}' on ${container.role} | validation | critical | secrets, env, security, policy |
| credential value in contributed env '${key}' on ${container. | validation | critical | secrets, env, security, plugins, policy |