ClawKit Logo
ClawKitReliability Toolkit
Error Doctor

Diagnose Any OpenClaw Error

Paste your error message below. We'll identify the cause and give you the exact commands to fix it.

Loading diagnostic interface…

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.

clawkit-doctor — Terminal

Diagnose (read-only)

$npx clawkit-doctor@latest

Scans 11 items. No changes made.

Diagnose + Auto-fix

$npx clawkit-doctor@latest --fix

Auto-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)

critical

The 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
Full guide

📄 JSON / Config Errors

JSON Parse Error

warning

Your 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 input
Full guide

Config File Not Found

warning

OpenClaw can't find the configuration file (clawhub.json) or the .openclaw directory. You need to initialize the config first.

Config file missingConfig directory missingclawhub.json
Full guide

Windows Path Breaks JSON Config

warning

Windows 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
Full guide

🪟 Windows Errors

npm Install Crash (postinstall failure)

critical

The 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 postinstall
Full guide

File Locked (EBUSY)

warning

The node_modules folder is locked by a running Gateway process or an editor. Stop the Gateway first.

npm error code EBUSYresource busy or lockedEBUSY
Full guide

Insecure File Permissions

critical

Config 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 users
Full guide

Gateway Runs as Foreground Window on Windows

warning

On 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 appearing
Full guide

Windows Spawn EINVAL Error

critical

Node.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 EINVAL
Full guide

npm Postinstall Script Failed (Windows)

critical

The 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...
Full guide

PowerShell Script Execution Blocked

critical

Windows 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 loaded
Full guide

Git Not Found (spawn git ENOENT)

critical

Git is not installed or not in your system PATH.

spawn git ENOENTnpm error syscall spawn gitnpm error code ENOENT
Full guide

Node.js Cannot Find Module

critical

The 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:\Users
Full guide

npm ENOENT Error on First OpenClaw Install (Windows)

critical

npm 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
Full guide

🔑 API Key Errors

API Key Invalid (401)

critical

Your API key is invalid, expired, or has leading/trailing whitespace. Double-check the key in your config.

401 Unauthorized401 unauthorizedinvalid api key
Full guide

Rate Limit Exceeded (429)

warning

Your provider account has hit its rate limit or has zero balance. Check your billing dashboard.

429 Rate Limit429 Too Many Requestsrate limit exceeded
Full guide

Model Not Found (404)

warning

Your 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 exist
Full guide

Provider Stuck in Cooldown (Circuit Breaker Loop)

critical

Circuit 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 cooldown
Full guide

400 Error: reasoning and reasoning_effort Cannot Both Be Set

critical

OpenClaw 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 400
Full guide

All Models Failed — No API Key or Context Too Small

critical

Sub-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 small
Full guide

Agent Still Uses Old Model After Config Update

warning

The 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 config
Full guide

Groq API Key Prefix Truncated (gsk_ Becomes sk_)

critical

Environment 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 prefix
Full guide

Cloud Code Assist API Error 403 — Account Verification Required

critical

Google 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 continue
Full guide

Very High Token Usage on Every Cold Start

info

OpenClaw 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 consumption
Full guide
Show all 21 errors in API Key

Gemini Model Not Found (404)

critical

The 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": 404
Full guide

LM Studio Local Model — Verification Failed

warning

LM 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 refused
Full guide

Kimi 2.5 via NVIDIA API — Configuration Issues

info

Kimi 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 setup
Full guide

Google Cloud CLI Auth — 403 Forbidden with Gemini

warning

Using 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 openclaw
Full guide

Vertex 'null to object' Crash (v2026.3.1)

critical

A 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 ...
Full guide

GPT-5.2 Reasoning 400 Bad Request

warning

GPT-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 index
Full guide

False 'API Rate Limit' Warning

warning

Misclassification of upstream 503/Timeout errors as 429 Rate Limits, triggering unnecessary cooldowns.

API rate limit reachedmapping to rate_limitprovider returned error (status 503)
Full guide

Venice AI Billing Depleted

critical

Your Venice AI balance is empty, and fallback logic didn't trigger automatically.

insufficient usd or diem balanceVenice 402billing failure
Full guide

OpenAI Preflight Timeout (10s)

warning

Provider model list response exceeded the 10-second validation cutoff.

verification timed out after ~9.98spreflight check failedmodel discovery timeout
Full guide

Anthropic 529/503 Overloaded — Retry and Cooldown Recovery

warning

Anthropic upstream capacity errors (529/503) triggered retries and provider cooldown. Requests fail until cooldown is cleared or fallback takes over.

overloaded_erroranthropic 529anthropic 503
Full guide

Tool Payload Format Mismatch

warning

The 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
Full guide

🐳 Docker Errors

Docker EACCES — Permission Denied

critical

Your 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: EACCES
Full guide

Docker Token Mismatch (Networking)

critical

Docker 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 mismatch
Full guide

Chrome Not Found in Docker

warning

The 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 sandbox
Full guide

Docker Not Found (spawn docker ENOENT)

critical

Docker 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 recognized
Full guide

Docker Image Pull Access Denied

critical

The 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 denied
Full guide

Sandboxed Skill Cannot Access Environment Variables

warning

Skills 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 sandbox
Full guide

Docker EACCES Permission Denied

critical

Mounted volumes are owned by root, but the container process runs as the 'node' user.

EACCES: permission denied, mkdirpermission denied, mkdir '/home/node/.openclaw'
Full guide

🌐 Gateway Errors

Gateway Abnormal Closure (1006)

critical

The 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 closure
Full guide

Zombie Process — Port Already in Use

critical

A 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 use
Full guide

Message Ordering Conflict

critical

OpenClaw 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...
Full guide

Unsupported Role: ROLE_UNSPECIFIED

critical

Your 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_UNSPECIFIED
Full guide

Gateway Health Check Failed

critical

The 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 oaky
Full guide

Gateway Already Running — Lock Timeout

critical

A 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 (pid
Full guide

All Exec Commands Timing Out (System Frozen)

critical

The 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 unresponsive
Full guide

systemctl --user Unavailable (Linux / WSL / Docker)

warning

The 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 --user
Full guide

openclaw: Command Not Found

critical

OpenClaw 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: openclaw
Full guide

Gateway Start Blocked — gateway.mode Not Configured

critical

The 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-unconfigured
Full guide
Show all 14 errors in Gateway

CLI Error: Too Many Arguments for 'gateway'

warning

The '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 got
Full guide

Config Not Initialized — Run 'openclaw init' First

critical

The 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)
Full guide

Config Validation Failed — Unrecognized Keys in openclaw.json

warning

Your 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 keys
Full guide

Bonjour Gateway Name Conflict

info

Multiple 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
Full guide

🦙 Ollama Errors

Ollama 5-Minute Timeout

critical

Node.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 minutes
Full guide

Ollama 'No API Key' Despite Correct Base URL Config

warning

auth-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 working
Full guide

Ollama Model Discovery Timeout

warning

OpenClaw 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
Full guide

🔐 Auth / Token Errors

Device Token Mismatch (1008)

critical

The 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...
Full guide

Gateway Token Mismatch / Missing

critical

The 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...
Full guide

Device Identity Required (1008)

critical

The 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 required
Full guide

Break-Glass Auth Left Enabled

warning

Debug/break-glass authentication settings are still enabled. This bypasses device token security.

dangerouslyDisableDeviceAuthallowInsecureAuthinsecure auth
Full guide

Pairing Required (1008)

critical

The 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 required
Full guide

Web Login Provider Not Available

warning

The 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 unavailable
Full guide

Gateway Token Rejected

critical

The 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 rejected
Full guide

Config Path Not Found: gateway.auth.token

warning

The 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 set
Full guide

Claude Max OAuth — Invalid Bearer Token (401)

critical

openclaw 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
Full guide

🌐 Browser Errors

Browser Control Service Timeout

critical

The 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)
Full guide

Chrome Extension Relay — Invalid Handshake (invalid request frame)

critical

Extension 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 ...
Full guide

Chrome Extension Relay Running — No Tab Connected

warning

The 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 running
Full guide

WSL2 Browser Control Timeout

warning

Network isolation between WSL2 and Windows host preventing CDP/Handshake connection.

CDP timeoutcould not connect to browser from wslwsl2 browser
Full guide

Ubuntu Snap Sandbox Conflict

warning

Snap-based Chromium prevents non-Snap processes like OpenClaw from managing lock files.

SingletonLockPermission denied (13)chromium-browser is a Snap wrapper
Full guide

💬 Telegram Errors

Telegram getUpdates Conflict (409)

warning

Two 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...
Full guide

Telegram Bot Stuck in Infinite Typing Indicator

warning

The 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 forever
Full guide

Telegram BOT_COMMANDS_TOO_MUCH

warning

Exceeded Telegram's 100-command limit due to too many active skills.

BOT_COMMANDS_TOO_MUCHBad Request: BOT_COMMANDS_TOO_MUCHsetMyCommands failed
Full guide

Telegram Reply Regex Crash

critical

Telegram 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>'
Full guide

📡 Channels Errors

Discord Bot Not Replying (Silent Delivery Failure)

critical

Message 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 channel
Full guide

Telegram Long Messages Disappear After Sending

warning

Streaming/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 seconds
Full guide

Telegram Bot Ignores Group Topic Messages

warning

requireMention: 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 ignored
Full guide

Slack Socket Mode Crash — Cannot read properties of undefined (reading 'listeners')

critical

EventEmitter 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 exited
Full guide

WhatsApp Config Validation Failed: Unrecognized key 'enabled'

warning

WhatsApp 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 key
Full guide

Feishu Plugin — Duplicate Plugin ID Detected

warning

The 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...
Full guide

MSTeams Plugin Immediately Crashes on Startup

critical

The 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 startup
Full guide

Slack Won't Send Files (files:write Scope Issue)

warning

Slack 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 failed
Full guide

Slack Bolt 4.6.0 Compatibility Crash

critical

Breaking 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.channels
Full guide

WhatsApp Linking Stuck at Logging In / Logged Out

warning

WhatsApp 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"
Full guide
Show all 11 errors in Channels

Google Chat Plugin Restart Loop

critical

Google Chat channel startup exits early due to config/startup sequencing issues, causing supervisor restart loops.

google chat pluginstartAccount resolves immediatelychannel exited
Full guide

🤖 Sub-Agents / Cron Errors

Sub-Agent Spawn — Scope Upgrade Blocked (1008)

critical

Sub-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 required
Full guide

Sub-Agent Device Token Mismatch (vdev Token Invalidated)

critical

Sub-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 mismatch
Full guide

Sub-Agent Running State Not Visible to Parent

warning

Sub-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 status
Full guide

Cron Job Announce Delivery Silently Fails

warning

Isolated 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 failed
Full guide

Cron Job Not Executing / Being Ignored

critical

Cron job not properly registered (sessionTarget misconfigured, gateway not running), or registration invalidated after a version upgrade.

cron job not runningscheduled task not executingopenclaw cron ignored
Full guide

Embedded Sub-Agent Run Timeout

warning

An 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=
Full guide

Session File Lock Timeout

warning

A 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 timeout
Full guide

Cron Announce Delivery Failed

warning

The 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\"
Full guide

Session File Locked (jsonl.lock Timeout)

warning

A 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 10000ms
Full guide

Built-in Memory Returns Empty Results

warning

The 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 nothing
Full guide
Show all 13 errors in Sub-Agents / Cron

Agent Forgets Identity / Personality After Restart

info

Agent 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 personality
Full guide

Cron Job WebSocket Timeout (60000ms)

warning

Cron 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 hangs
Full guide

Published Skill Stuck in 'Being Scanned' State

warning

After 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
Full guide

🍎 macOS Errors

macOS LaunchAgent Not Found (launchctl kickstart failed)

critical

The 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 failed
Full guide

Xcode CLT Does Not Support macOS 26

critical

node-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 26
Full guide

macOS Tahoe Permission Blocks OpenClaw/Gateway

critical

macOS 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
Full guide

🔗 Remote / Networking Errors

Remote Gateway Connection Blocked — ws:// Security Error

critical

Gateway 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://
Full guide

Android App Connection Refused — origin-mismatch

critical

The 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 refused
Full guide

Control UI — 'Origin Not Allowed' Error

warning

The 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 ui
Full guide

IPv6 DNS Connection Timeout

warning

Node.js prioritizing IPv6 on a network with broken IPv6 routing, causing 32s hangs.

fetch faileddns-result-orderHappy Eyeballs
Full guide