Diagnose Any OpenClaw Error
Paste your error message below. We'll identify the cause and give you the exact commands to fix it.
Automated Local Diagnostic
Prefer an automated check? The CLI Doctor v2.0 scans 11 items — Node.js, Git, Docker, config JSON, gateway tokens, stale locks, and port conflicts. Add --fix to auto-repair issues.
Diagnose (read-only)
npx clawkit-doctor@latestScans 11 items. No changes made.
Diagnose + Auto-fix
npx clawkit-doctor@latest --fixAuto-repairs: align tokens, remove stale locks, fix permissions.
Read-Only by Default
Only modifies files with --fix flag.
No Data Upload
Everything stays on your machine.
Open Source
100% transparent. Inspect the code on npm.
All Known OpenClaw Errors
Complete reference of 108 diagnosed errors across 14 categories.
🔌 Connection Errors
Connection Refused (ECONNREFUSED)
criticalThe agent is not running, is on a different port, or Node.js v18+ is preferring IPv6 over IPv4. Try using 127.0.0.1 instead of localhost.
ECONNREFUSED 127.0.0.1:3000Error: connect ECONNREFUSEDConnection refused to localhost:3000📄 JSON / Config Errors
JSON Parse Error
warningYour config file has invalid JSON — common culprits are trailing commas, unescaped backslashes in Windows paths (use \\), single quotes, or comments (// not allowed in JSON).
SyntaxError: Unexpected tokenJSON.parse: unexpected characterUnexpected end of JSON inputConfig File Not Found
warningOpenClaw can't find the configuration file (clawhub.json) or the .openclaw directory. You need to initialize the config first.
Config file missingConfig directory missingclawhub.jsonWindows Path Breaks JSON Config
warningWindows backslashes must be double-escaped in JSON (C:\\Users\\name). Single backslashes create invalid escape sequences.
C:\Users\Unexpected token u in JSONBad escaped character🪟 Windows Errors
npm Install Crash (postinstall failure)
criticalThe OpenClaw postinstall script crashed during npm install. Error code 3221225477 (0xC0000005) is a Windows access violation — often caused by a corrupted Node.js installation, incompatible Node version, or antivirus interference.
npm error command C:\WINDOWS\system32\cmd.exe /...npm error code 3221225477node ./dist/cli/cli.js postinstallFile Locked (EBUSY)
warningThe node_modules folder is locked by a running Gateway process or an editor. Stop the Gateway first.
npm error code EBUSYresource busy or lockedEBUSYInsecure File Permissions
criticalConfig or credential files are readable/writable by other Windows users. This is a security risk.
[CRITICAL] openclaw.json is writable by other u...[CRITICAL] credentials directory is writable by...writable by other usersGateway Runs as Foreground Window on Windows
warningOn Windows, the gateway starts as a regular console process rather than a background service, so it opens a window and cannot be stopped via 'gateway stop'.
openclaw gateway start opens interactive windowgateway stop cannot close on windowsgateway window keeps appearingWindows Spawn EINVAL Error
criticalNode.js on Windows cannot spawn a process because the executable path contains invalid characters, spaces, or the executable is not found. Often occurs with OpenClaw gateway or tool execution.
spawn EINVALError: spawn EINVALsyscall spawn EINVALnpm Postinstall Script Failed (Windows)
criticalThe OpenClaw postinstall script (which sets up the gateway binary) failed on Windows. Common causes: Node.js version mismatch, missing Visual C++ redistributables, or running without admin privileges.
npm error command C:\WINDOWS\system32\cmd.exe /...node ./dist/cli/cli.js postinstallnpm error command failed
npm error command C:\W...PowerShell Script Execution Blocked
criticalWindows PowerShell blocks .ps1 scripts by default. Use npm.cmd instead or change the execution policy.
cannot be loaded because running scripts is dis...PSSecurityExceptionnpm.ps1 cannot be loadedGit Not Found (spawn git ENOENT)
criticalGit is not installed or not in your system PATH.
spawn git ENOENTnpm error syscall spawn gitnpm error code ENOENTNode.js Cannot Find Module
criticalThe OpenClaw package files are missing or corrupted. Usually caused by an interrupted npm install, EBUSY lock during update, or a module path mismatch after a version change.
node:internal/modules/cjs/loaderCannot find moduleError: Cannot find module 'C:\Usersnpm ENOENT Error on First OpenClaw Install (Windows)
criticalnpm global install directory doesn't exist or lacks permissions. Incomplete Node.js installation, incorrect PATH, or running without admin privileges.
npm error code ENOENTiwr -useb openclaw install script ENOENTnpm global install directory not found🔑 API Key Errors
API Key Invalid (401)
criticalYour API key is invalid, expired, or has leading/trailing whitespace. Double-check the key in your config.
401 Unauthorized401 unauthorizedinvalid api keyRate Limit Exceeded (429)
warningYour provider account has hit its rate limit or has zero balance. Check your billing dashboard.
429 Rate Limit429 Too Many Requestsrate limit exceededModel Not Found (404)
warningYour API key does not have access to the requested model, or the model name is incorrect. For Gemini, check that you're using the correct API version and model ID (e.g., gemini-2.0-flash instead of gemini-1.5-flash).
404 No Model404 model not foundThe model does not existProvider Stuck in Cooldown (Circuit Breaker Loop)
criticalCircuit breaker state is persisted in state.json. Standard restart/doctor does not clear the unusableProfiles list — the cooldown survives restarts.
Provider anthropic is in cooldown (all profiles...all profiles unavailableprovider is in cooldown400 Error: reasoning and reasoning_effort Cannot Both Be Set
criticalOpenClaw sends both 'reasoning' and 'reasoning_effort' parameters simultaneously. Some providers (GLM, certain OpenRouter models) only accept one of them.
error=400 Only one of "reasoning" and "reasonin...Only one of reasoning and reasoning_effort may ...reasoning_effort conflict 400All Models Failed — No API Key or Context Too Small
criticalSub-agents in different agentDir directories do not inherit the main agent's auth-profiles.json. Fallback models may also have an insufficient context window (minimum 16000 tokens required).
All models failed (2): nvidia/No API key found for provider nvidiaModel context window too smallAgent Still Uses Old Model After Config Update
warningThe agent wrote a model override to its agent-level config directory, which takes priority over openclaw.json. Standard restart does not clear this agent-level override.
agent still uses old model after config updatemodel override cachedagent self-modified model configGroq API Key Prefix Truncated (gsk_ Becomes sk_)
criticalEnvironment variable parsing strips the leading 'g' from GROQ_API_KEY. The gateway reads 'sk_...' instead of 'gsk_...', causing 401 errors.
groq api key starts with sk_ instead of gsk_groq key prefix truncatedGROQ_API_KEY missing g prefixCloud Code Assist API Error 403 — Account Verification Required
criticalGoogle Cloud Code Assist requires account re-verification (free tier exhausted or account status change). Typically occurs after updating Gemini model version.
Cloud Code Assist API error (403): Verify your ...Cloud Code Assist API error (403)Verify your account to continueVery High Token Usage on Every Cold Start
infoOpenClaw injects all tool schemas into context at session start (no lazy loading). With 28+ tools, this can consume 130K+ input tokens per cold start.
131K input tokens on cold start28 tools injected every sessionhigh baseline token consumptionShow all 21 errors in API Key
Gemini Model Not Found (404)
criticalThe Gemini model name is invalid or not available in the v1beta API version. Common cause: using a deprecated model name (gemini-1.5-flash) that has been superseded, or the model requires a different API version.
models/gemini-1.5-flash is not found for API ve...models/gemini is not found for API versionLLM error: { "error": { "code": 404LM Studio Local Model — Verification Failed
warningLM Studio's local server needs to be running and accessible. Common issues: server not started in LM Studio, wrong port, or the model isn't loaded into memory.
lm studio verification failedlocal model setuplm studio connection refusedKimi 2.5 via NVIDIA API — Configuration Issues
infoKimi 2.5 is available via NVIDIA's NIM inference service. Configuration requires using the OpenAI-compatible endpoint with the NVIDIA API key, not the Moonshot/Kimi direct API.
kimi 2.5 nvidia apinvidia inference servicekimi nvidia setupGoogle Cloud CLI Auth — 403 Forbidden with Gemini
warningUsing gcloud CLI application-default credentials instead of a direct API key. The Cloud Code Assist API has different quotas/permissions than the direct Gemini API. Free tier may be exhausted.
gcloud CLI authCloud Code Assist 403google oauth 403 openclawVertex 'null to object' Crash (v2026.3.1)
criticalA regression in OpenClaw v2026.3.1 where the Vertex provider fails to handle empty usage metadata in embedded runs (Telegram/cron).
Cannot convert undefined or null to objectVertexProvider.parseMetadataisError=true error=Cannot convert undefined or ...GPT-5.2 Reasoning 400 Bad Request
warningGPT-5.2 reasoning blocks must be followed by content. Session history truncation can sometimes orphan these blocks, causing API rejection.
required following item missing for reasoning b...rs_... of type reasoning was provided without i...invalid message sequence at indexFalse 'API Rate Limit' Warning
warningMisclassification of upstream 503/Timeout errors as 429 Rate Limits, triggering unnecessary cooldowns.
API rate limit reachedmapping to rate_limitprovider returned error (status 503)Venice AI Billing Depleted
criticalYour Venice AI balance is empty, and fallback logic didn't trigger automatically.
insufficient usd or diem balanceVenice 402billing failureOpenAI Preflight Timeout (10s)
warningProvider model list response exceeded the 10-second validation cutoff.
verification timed out after ~9.98spreflight check failedmodel discovery timeoutAnthropic 529/503 Overloaded — Retry and Cooldown Recovery
warningAnthropic upstream capacity errors (529/503) triggered retries and provider cooldown. Requests fail until cooldown is cleared or fallback takes over.
overloaded_erroranthropic 529anthropic 503Tool Payload Format Mismatch
warningThe LLM provider requires tool call payloads in OpenAI/Anthropic format, but the request was sent in an incompatible format. This usually happens when using a custom or proxy LLM endpoint that doesn't fully implement the tool-use spec.
requiresOpenAiAnthropicToolPayloadrequires OpenAI Anthropic tool payloadtool payload format🐳 Docker Errors
Docker EACCES — Permission Denied
criticalYour config references macOS host paths (e.g., /Users/...) inside a Linux container. Use Docker volumes instead.
EACCES: permission denied, mkdir '/Users'Error: EACCES: permission deniedFailed handling inbound web message: Error: EACCESDocker Token Mismatch (Networking)
criticalDocker containers have separate network namespaces. Use Docker Compose service names (e.g., ws://browser:3000) instead of localhost.
Token mismatch — expected connection from 127.0...Error: Token mismatchChrome Not Found in Docker
warningThe base Docker image does not include Chrome/Chromium. Add a separate browser service or install Chromium in your image.
Could not find Chrome installationIs Chrome installed?No usable sandboxDocker Not Found (spawn docker ENOENT)
criticalDocker is not installed or not in your PATH. OpenClaw's sandbox mode tries to run agents in Docker containers. Either install Docker or disable sandboxing.
spawn docker ENOENTError: spawn docker ENOENTdocker is not recognizedDocker Image Pull Access Denied
criticalThe Docker image name is wrong or the repository is private. The official image is published under a different registry path. Check the OpenClaw docs for the correct image name and tag.
pull access denied for openclaw/openclawrepository does not exist or may require 'docke...Error: pull access deniedSandboxed Skill Cannot Access Environment Variables
warningSkills running in sandbox mode (Docker) don't inherit the host's environment variables. Environment variables must be explicitly passed through the sandbox configuration.
sandbox skill env variablesandboxed agent env varsenv var not available in sandboxDocker EACCES Permission Denied
criticalMounted volumes are owned by root, but the container process runs as the 'node' user.
EACCES: permission denied, mkdirpermission denied, mkdir '/home/node/.openclaw'🌐 Gateway Errors
Gateway Abnormal Closure (1006)
criticalThe Gateway process crashed or was killed unexpectedly. Often caused by a zombie process or crash loop.
gateway closed (1006 abnormal closure)Error: gateway closed (10061006 abnormal closureZombie Process — Port Already in Use
criticalA previous node.exe process crashed but did not release the port. The new Gateway cannot bind to it.
EADDRINUSEaddress already in useport 18789 already in useMessage Ordering Conflict
criticalOpenClaw sends a 'developer' role that your model provider doesn't support. The real API error is '400 unsupported role ROLE_UNSPECIFIED'.
Message ordering conflict - please try againMessage ordering conflictIf this persists, use /new to start a fresh ses...Unsupported Role: ROLE_UNSPECIFIED
criticalYour model provider does not support the 'developer' role. This is the root cause behind the 'Message ordering conflict' error.
400 invalid request: unsupported role ROLE_UNSP...unsupported role ROLE_UNSPECIFIEDROLE_UNSPECIFIEDGateway Health Check Failed
criticalThe Gateway is unreachable or crashed. The health probe cannot connect to the WebSocket endpoint. Common causes: Gateway not running, port conflict, or process terminated unexpectedly.
gateway health not okaygateway health not okgateway health not oakyGateway Already Running — Lock Timeout
criticalA previous Gateway process left a stale lock file. In Docker/container environments, PID reuse after restart can fool the lock validation into thinking the old instance is still alive.
gateway already runninglock timeout after 5000msgateway already running (pidAll Exec Commands Timing Out (System Frozen)
criticalThe exec-approval socket is unresponsive, causing all exec tool calls to hang indefinitely. Often caused by a stuck approval prompt that was never answered.
The system is completely frozen. Every command ...every command timing outexec approval unresponsivesystemctl --user Unavailable (Linux / WSL / Docker)
warningThe OpenClaw gateway auto-start via systemd user services is unavailable. This happens in WSL, Docker containers, and minimal Linux environments where systemd is not running.
systemctl --user unavailable: spawn systemctl E...systemctl --user unavailablesystemctl --useropenclaw: Command Not Found
criticalOpenClaw is not installed, or the npm global bin directory is not in your PATH.
zsh: command not found: openclawbash: command not found: openclawcommand not found: openclawGateway Start Blocked — gateway.mode Not Configured
criticalThe gateway requires gateway.mode to be explicitly set. This was introduced to prevent accidental remote exposure. Set gateway.mode=local for local-only use, or gateway.mode=remote for remote access.
gateway start blocked: set gateway.mode=localset gateway.mode=local (current: unset)pass --allow-unconfiguredShow all 14 errors in Gateway
CLI Error: Too Many Arguments for 'gateway'
warningThe 'gateway' command does not accept subcommand arguments in this form. Correct syntax is 'openclaw gateway start' or 'openclaw gateway stop' — not 'openclaw gateway start --flag' with extra positional args.
error: too many arguments for 'gateway'. Expect...too many arguments for 'gateway'Expected 0 arguments but gotConfig Not Initialized — Run 'openclaw init' First
criticalThe OpenClaw config directory or config file does not exist. This happens on a fresh install before running the setup command, or if the config directory was deleted. ('clawhub' was an earlier name for openclaw.)
Config directory missing atRun 'clawhub init' firstConfig file missing (clawhub.json)Config Validation Failed — Unrecognized Keys in openclaw.json
warningYour openclaw.json contains keys that the current version doesn't recognize (e.g., 'llm' or 'system' from an older config format). These were valid in earlier versions but have been renamed or moved.
Unrecognized keys: "llm"Unrecognized keys: "system"<root>: Unrecognized keysBonjour Gateway Name Conflict
infoMultiple OpenClaw instances on the same local network are advertising the same Bonjour/mDNS name. OpenClaw automatically resolves this by renaming the new instance (e.g. 'openclaw (2)'). This is informational — your gateway is still running normally.
[bonjour] gateway name conflictgateway name conflict resolvedbonjour gateway name conflict🦙 Ollama Errors
Ollama 5-Minute Timeout
criticalNode.js undici HTTP client has a hardcoded 300-second timeout. Long Ollama generations get killed at exactly 5 minutes.
UND_ERR_HEADERS_TIMEOUTUND_ERR_BODY_TIMEOUTgeneration stops at 5 minutesOllama 'No API Key' Despite Correct Base URL Config
warningauth-profiles.json uses snake_case 'api_key' field name, but OpenClaw requires camelCase 'apiKey'. Also check that the agentDir path matches.
No API key found for provider "ollama"ollama no api key despite configollama auth profiles not workingOllama Model Discovery Timeout
warningOpenClaw can't reach the Ollama API at localhost:11434 within the timeout. Either Ollama isn't running, it's on a different port, or a firewall is blocking the connection.
failed to discover ollama modelsTimeoutError: operation was aborted due to timeoutfailed to discover ollama models timeouterror🔐 Auth / Token Errors
Device Token Mismatch (1008)
criticalThe Gateway was restarted or updated, invalidating the client's cached token. A zombie process may also be holding the old port.
disconnected (1008): unauthorized: device token...disconnected (1008): unauthorized: device token...gateway closed (1008): unauthorized: device tok...Gateway Token Mismatch / Missing
criticalThe gateway's auth token (gateway.auth.token) doesn't match the client's token (gateway.remote.token or OPENCLAW_GATEWAY_TOKEN env var), or the token is missing entirely. Common in Docker where the gateway regenerates a random token on each restart.
unauthorized: gateway token mismatchset gateway.remote.token to match gateway.auth....gateway token mismatch (provide gateway auth to...Device Identity Required (1008)
criticalThe client has no device identity (ID + cryptographic keys). This happens when accessing Control UI over HTTP from a non-localhost address (browser blocks crypto.subtle in insecure contexts), or when a CLI node doesn't have identity parameters.
disconnected (1008): device identity requireddevice identity requiredgateway closed (1008): device identity requiredBreak-Glass Auth Left Enabled
warningDebug/break-glass authentication settings are still enabled. This bypasses device token security.
dangerouslyDisableDeviceAuthallowInsecureAuthinsecure authPairing Required (1008)
criticalThe device connecting to the Gateway hasn't been approved. Local connections are auto-approved, but Docker containers (due to NAT), LAN clients, and remote nodes require explicit device approval.
disconnected (1008): pairing requiredpairing requiredGateway unreachable: pairing requiredWeb Login Provider Not Available
warningThe gateway is configured to use a web-based login provider (OAuth/SSO), but the provider is not set up or the gateway URL is not accessible. This typically occurs when the control UI is accessed from an insecure context.
Error: web login provider is not availableweb login provider is not availableweb login provider unavailableGateway Token Rejected
criticalThe token entered in the Control UI does not match the gateway's current auth token. The token may have been rotated or the config was updated after the token was copied.
gateway token rejected. check token and save againtoken rejected. check token and save againtoken rejectedConfig Path Not Found: gateway.auth.token
warningThe gateway.auth.token config path is empty or does not exist. This means the gateway is running without a token (open access) or the token was never set. Set a token to secure your gateway.
Config path not found: gateway.auth.tokenconfig path not found gateway.auth.tokengateway.auth.token not setClaude Max OAuth — Invalid Bearer Token (401)
criticalopenclaw models auth setup-token generates a static token that is incompatible with Claude Max OAuth flow. The correct path is openclaw models auth login (OAuth flow).
HTTP 401 authentication_error: Invalid bearer t...anthropic:manual static tokensetup-token invalid bearer🌐 Browser Errors
Browser Control Service Timeout
criticalThe browser control service can't connect to Chromium via CDP. Common causes: a hung page.evaluate() froze the CDP connection, a stray browser process holds port 18800, or the Gateway isn't running.
Can't reach the openclaw browser control servicecan't reach the openclaw browser control servicebrowser control service (timed out after 20000ms)Chrome Extension Relay — Invalid Handshake (invalid request frame)
criticalExtension WebSocket handshake succeeds but the first frame type mismatches. The relay server may not be running, may be on an unexpected port, or may need reinstalling after a gateway update.
invalid handshake handshakeError: 'invalid requ...lastFrameMethod: 'forwardCDPEvent'extension badge stuck at ...Chrome Extension Relay Running — No Tab Connected
warningThe OpenClaw Chrome extension is installed and the relay is active, but it hasn't been attached to any open browser tab. The extension needs a tab to inject into before browser tools can work.
chrome extension relay is running, but no tab i...click the openclaw chrome extension icon on a t...chrome extension relay is runningWSL2 Browser Control Timeout
warningNetwork isolation between WSL2 and Windows host preventing CDP/Handshake connection.
CDP timeoutcould not connect to browser from wslwsl2 browserUbuntu Snap Sandbox Conflict
warningSnap-based Chromium prevents non-Snap processes like OpenClaw from managing lock files.
SingletonLockPermission denied (13)chromium-browser is a Snap wrapper💬 Telegram Errors
Telegram getUpdates Conflict (409)
warningTwo or more OpenClaw instances (or another bot using the same token) are polling the Telegram API simultaneously. Telegram only allows one active getUpdates connection per bot token.
getUpdates conflictCall to 'getUpdates' failed409: Conflict: terminated by other getUpdates r...Telegram Bot Stuck in Infinite Typing Indicator
warningThe agent is processing (or stuck) but the typing indicator was never cleared. This occurs when the agent enters a tool loop, hits a rate limit, or the response exceeds Telegram's message length limit causing a silent failure.
infinite typingtyping indicator stucktelegram typing foreverTelegram BOT_COMMANDS_TOO_MUCH
warningExceeded Telegram's 100-command limit due to too many active skills.
BOT_COMMANDS_TOO_MUCHBad Request: BOT_COMMANDS_TOO_MUCHsetMyCommands failedTelegram Reply Regex Crash
criticalTelegram plugin misinterpreting reply text as a local file path due to greedy regex.
telegram tool reply failed: Error: ENOENTno such file or directory, open 'audio>'📡 Channels Errors
Discord Bot Not Replying (Silent Delivery Failure)
criticalMessage Content Intent not enabled in Discord Developer Portal, or channel binding failed due to unresolved guildId/channelId at startup time.
discord channels unresolved: guildId/channelIddiscord bot not replyingdiscord unresolved channelTelegram Long Messages Disappear After Sending
warningStreaming/draft preview mode may cause Telegram to silently reject oversized messages while returning a false success. Invalid supergroup IDs in allowFrom may also interfere.
telegram message disappears after sendingsendMessage ok but message not visiblelong reply disappears after 1-2 secondsTelegram Bot Ignores Group Topic Messages
warningrequireMention: false only applies to regular group chats. Telegram Forum topics (threads) require additional allowThreads configuration.
bot cannot read topic messages without mentiontelegram forum threads not workingtelegram group topics ignoredSlack Socket Mode Crash — Cannot read properties of undefined (reading 'listeners')
criticalEventEmitter initialization order bug in the Slack plugin (confirmed on build 2026.2.19-2). Triggers with specific Slack App configuration combinations and causes crash on every startup.
Cannot read properties of undefined (reading 'l...Slack Socket Mode crashslack channel exitedWhatsApp Config Validation Failed: Unrecognized key 'enabled'
warningWhatsApp channel configuration schema changed. The 'enabled' field is no longer supported directly under channels.whatsapp.
Config validation failed: channels.whatsapp: Un...channels.whatsapp Unrecognized key enabledwhatsapp unrecognized keyFeishu Plugin — Duplicate Plugin ID Detected
warningThe feishu plugin is registered more than once in openclaw.json (e.g., under both plugins.entries and as a legacy top-level key). The later entry wins, but this warning indicates a config conflict.
plugin feishu: duplicate plugin id detectedduplicate plugin id detected; later plugin id winsplugins.entries.feishu: plugin feishu: duplicat...MSTeams Plugin Immediately Crashes on Startup
criticalThe MSTeams plugin crashes during initialization before processing any messages. Typically caused by misconfigured App ID/Password or missing Microsoft Bot Framework registration.
MSTeams plugin immediately diesmsteams plugin initializationmsteams plugin crash on startupSlack Won't Send Files (files:write Scope Issue)
warningSlack file uploads fail even with files:write scope granted. The legacy files.upload API was deprecated — OpenClaw must use files.uploadV2 which requires the file to be in a channel the bot is a member of.
files:write scopeslack won't send filesslack file upload failedSlack Bolt 4.6.0 Compatibility Crash
criticalBreaking change in Slack Bolt v4.6.0 removed legacy channel events, causing startup failure.
message.channels is not a valid event typeslack-boltinvalid event type: message.channelsWhatsApp Linking Stuck at Logging In / Logged Out
warningWhatsApp session state became inconsistent after partial link success. Dashboard may show linked while runtime remains disconnected or logged out.
whatsapp linking stuck at logging inlinked yes running no connected noerror: "logged out"Show all 11 errors in Channels
Google Chat Plugin Restart Loop
criticalGoogle Chat channel startup exits early due to config/startup sequencing issues, causing supervisor restart loops.
google chat pluginstartAccount resolves immediatelychannel exited🤖 Sub-Agents / Cron Errors
Sub-Agent Spawn — Scope Upgrade Blocked (1008)
criticalSub-agent spawn requires operator.write permission, but the current device only has operator.read. The gateway blocks scope upgrades within a session and cannot approve them inline.
gateway closed (1008): pairing requiredsecurity audit: device access upgrade requested...sessions_spawn fails with pairing requiredSub-Agent Device Token Mismatch (vdev Token Invalidated)
criticalSub-agent spawn uses an embedded vdev token. Editing openclaw.json while the gateway is running triggers a hot reload that invalidates the vdev token, breaking sub-agent connections even though the main session still works.
sessions_spawn fails with device token mismatchunauthorized: device token mismatchvdev token mismatchSub-Agent Running State Not Visible to Parent
warningSub-agent intermediate state is not automatically reported to the parent agent. If the sub-agent encounters an error or waits for input, it silently hangs with no feedback.
no way to check sub-agent progresssub-agent hanging silentlyparent agent cannot see child agent statusCron Job Announce Delivery Silently Fails
warningIsolated cron sessions cannot access the original channel context required for announce delivery mode. Regression introduced in a recent version.
cron announce delivery silent failuredelivery mode announce channel telegram not sen...isolated cron job delivery failedCron Job Not Executing / Being Ignored
criticalCron job not properly registered (sessionTarget misconfigured, gateway not running), or registration invalidated after a version upgrade.
cron job not runningscheduled task not executingopenclaw cron ignoredEmbedded Sub-Agent Run Timeout
warningAn embedded sub-agent exceeded its maximum execution time. This can happen when the agent is waiting on a slow tool call, stuck in a loop, or the task is too complex for the configured timeout.
[agent/embedded] embedded run timeoutembedded run timeout: runId=embedded run timeout: sessionId=Session File Lock Timeout
warningA session lock file (.lock) was not released by a previous process. This can happen after a crash or forced kill. The new session cannot start until the stale lock is removed.
session file locked timeoutsession file locked timeout 10000msjsonl.lock timeoutCron Announce Delivery Failed
warningThe cron job's announce output has nowhere to deliver. This happens when sessionTarget is set to "isolated" — an isolated session has no persistent channel for cron messages. Switch to "persistent" so cron output has a valid delivery target.
cron announce delivery failedcron channel delivery config is only supported ...sessionTarget=\"isolated\"Session File Locked (jsonl.lock Timeout)
warningA previous session crashed or was force-killed without releasing its .jsonl.lock file. The next session can't acquire the lock within the 10s timeout, so it aborts.
session file lockedjsonl.lock timeoutsession file locked timeout 10000msBuilt-in Memory Returns Empty Results
warningThe built-in memory tool returns empty results when memory files use structured markdown with ## headings. The chunking algorithm splits on heading boundaries, causing short sections to fall below the relevance threshold.
memory returning empty resultsbuiltin memory emptyagent memory search returns nothingShow all 13 errors in Sub-Agents / Cron
Agent Forgets Identity / Personality After Restart
infoAgent identity files (.md) in the agent directory are not automatically loaded into new session context. The system prompt is injected once at session start — if the identity file isn't referenced, the agent loses its configured personality.
agent doesn't know its nameagent forgot identityagent lost personalityCron Job WebSocket Timeout (60000ms)
warningCron task completes but the WebSocket connection hangs for 60 seconds before timing out. Common on VPS deployments (e.g., Coolify) where the WebSocket idle timeout is too short for long-running cron tasks.
cron 60000ms timeoutWebSocket timeoutcron webhook delivery hangsPublished Skill Stuck in 'Being Scanned' State
warningAfter publishing a skill, it enters a 'Being scanned' state for security verification. If the scan takes too long or fails silently, the skill remains in this state indefinitely.
skill stuck in Being scannedskill scanning timeoutskill status scanning forever🍎 macOS Errors
macOS LaunchAgent Not Found (launchctl kickstart failed)
criticalThe LaunchAgent plist is missing or unregistered after a version upgrade or manual bootout. Port 18789 being occupied can also cause launchd to silently fail registration.
launchctl kickstart failed: Could not find serv...Could not find service ai.openclaw.gatewaylaunchctl kickstart failedXcode CLT Does Not Support macOS 26
criticalnode-gyp detects macOS version via sw_vers. macOS 26 exceeds the expected version range (≤15.x) in older CLT versions, causing native addon compilation to fail during skill installs.
Error: Your Command Line Tools (CLT) does not s...CLT does not support macOSdoes not support macOS 26macOS Tahoe Permission Blocks OpenClaw/Gateway
criticalmacOS Tahoe privacy controls (TCC/File Access) blocked OpenClaw or Gateway access to required paths/devices, causing command or startup failures.
operation not permittedpermission deniedmacOS Tahoe🔗 Remote / Networking Errors
Remote Gateway Connection Blocked — ws:// Security Error
criticalGateway rejects plaintext WebSocket connections from non-loopback addresses to protect credentials and chat data. Use SSH tunnel or configure wss:// with TLS.
SECURITY ERROR: Cannot connect toBoth credentials and chat data would be exposedCannot connect over plaintext ws://Android App Connection Refused — origin-mismatch
criticalThe Android OpenClaw client does not send an HTTP Origin header. The gateway requires origin validation by default, and allowedOrigins cannot handle a missing header (only wrong headers).
origin missing or invalidcause: origin-mismatchAndroid app gateway connection refusedControl UI — 'Origin Not Allowed' Error
warningThe gateway rejects WebSocket connections from origins not in the allowedOrigins list. When accessing the Control UI from a different host or port, the browser's Origin header doesn't match.
origin not allowedopen the Control UI from the gateway hostorigin not allowed control uiIPv6 DNS Connection Timeout
warningNode.js prioritizing IPv6 on a network with broken IPv6 routing, causing 32s hangs.
fetch faileddns-result-orderHappy EyeballsEnvironment healthy? Next steps.
Config Wizard
Generate a production-ready clawhub.json in 30 seconds.
Cost Simulator
Calculate your agent burn rate before you get surprised.
Skill Registry
Browse 9,000+ verified plugins for your OpenClaw agent.
Gateway Monitor
Detect token spikes and gateway incidents before users complain.
Skill Finder
Describe your use case and find the right Claude Code skill instantly.