Troubleshooting
Fix common issues and resolve problems
Fix common issues and resolve problems
Most OpenClaw issues fall into a few buckets: Gateway won't start, channel won't connect, or the agent goes quiet. This page covers those and the fixes that usually work. Run openclaw doctor first—it catches a lot before you dig in.
Quick reference – common commands: openclaw restart or openclaw gateway restart to restart the gateway; openclaw doctor --fix to run health checks and auto-fix common issues (permissions, config, missing dirs). See sections below for specific errors like gateway token missing (1008), bundled Chrome extension missing, no output, or can't reach browser control service.
Before you ask for help: Run openclaw doctor (or openclaw doctor --fix), check the FAQ for your symptom, and when reporting a bug include your OpenClaw version (openclaw --version).
Trouble started after an update? Follow Upgrading / Migrating first, especially for breaking config-path moves in recent releases.
OpenClaw gateway restart – use one of these:
openclaw restart – quick restartopenclaw gateway restart – explicit gateway restartIf OpenClaw runs as a service:
systemctl --user restart openclaw-gateway (service name may vary; check with systemctl --user list-units | grep openclaw)launchctl unload ~/Library/LaunchAgents/ai.openclaw.gateway.plist then start againSee also FAQ: How do I restart OpenClaw?
Possible causes:
Solutions:
openclaw doctor to check for configuration issuesnode --versionlsof -i :18789 (macOS/Linux)~/.openclaw/openclaw.json or ~/.openclaw/openclaw.jsonnpm install -g openclaw@latestPossible causes:
Solutions:
~/.openclaw/credentials for stored credentialsopenclaw gateway --verbosePossible causes:
Solutions:
needsScreenRecording: true in tool callsPossible causes:
Solutions:
~/.openclaw/openclaw.jsonopenclaw agent --message "test"Possible causes:
Solutions:
~/.openclaw/workspace/skills/Error message: error: bundled chrome extension is missing. reinstall openclaw and try again.
Fix:
npm install -g openclaw@latest or pnpm add -g openclaw@latestopenclaw onboard --install-daemon if you use the daemonopenclaw gateway restartError message: "can't reach the openclaw browser control service. start (or restart) the openclaw gateway", or (on older installs) messages about a Chrome relay or no tab connected.
Possible causes:
Solutions:
browser.enabled: trueexisting-session / DevTools MCP per current docs)—the legacy extension relay was removed in 2026.3.22; run openclaw doctor --fix if you have stale relay configopenclaw gateway restartIssue: OpenClaw shows no output or doesn't respond to messages
Possible causes:
Solutions:
openclaw gateway statusopenclaw gateway restartopenclaw doctor --fixopenclaw channels listopenclaw gateway logsAgent replies but never runs tools (read file, run command, browser): Your agent may have no tools enabled. OpenClaw can default to tools.profile: "messaging", which only allows sending messages—no file access, exec, or browser. Fix: set "tools": { "profile": "full" } in your config (or "coding" if you use that profile). Then restart the Gateway. If you need the agent to run commands without asking for approval each time (e.g. on Telegram where there is no confirmation popup), add "exec": { "security": "full", "ask": "off" } under tools. Set profile first; exec.ask only applies when tools are enabled. New installs (2026.3.8+) default to a coding profile in onboarding, but upgraded or manually edited configs may still have messaging-only. See Configuration.
Billing / API errors (2026.2.19+): When a model or provider returns a billing or quota error, OpenClaw now includes the active model in the message (e.g. OpenAI (gpt-5.3)) so you can see which key or account needs credits.
Agent keeps "thinking," webhook or custom tool never fires, tokens drain: Often a mismatch between what the model believes it can call (e.g. instructions in TOOLS.md) and what the Gateway actually exposes under tools.profile / tools.allow, or the tool call fails silently from a network path the model keeps trying to "fix." See Agent tool loop & custom tools (e.g. n8n).
Symptoms: The assistant babbles in a self-reflective or "doctor" style, repeats planning steps, burns context/tokens, and nothing reaches your external integration (for example an n8n workflow that should start on webhook). Sometimes it insists the tool exists because it read TOOLS.md, but execution never happens or n8n shows no run.
What's going on:
TOOLS.md is documentation in context, not automatic registration. It tells the model how you want tools used. The real allowlist is config: tools.profile, optional tools.allow / deny rules, skills, MCP, and anything else your build actually wires into the tool surface. If the runtime only exposes fetch_web_search and shell (for example), a bespoke tool name you only described in Markdown may not exist as a callable tool—the model can still spiral trying to "make it work."gateway.bind / listen address is about who can connect to OpenClaw, not whether your Gateway can open an outbound HTTP request to n8n. Migrating gateway.bind from 0.0.0.0 to lan does not by itself fix or break webhook calls to another host.curl or wget to the webhook URL from that same host (firewall, wrong URL, TLS, VPN, or "localhost" pointing at the wrong machine are common).tools.profile: "minimal" (or similar) and an tools.allow list, every tool the agent should invoke—including helpers like sessions_spawn if you use subagents—must be allowed. See Sub-agent setup for an example of expanding tools.allow.What to do:
tools.profile and tools.allow with the tools you need, then restart the Gateway.AGENTS.md such as "If a tool or webhook fails twice, stop, summarize the error, and ask me—do not keep diagnosing." (Context & truncation — important rules belong at the top.)openclaw doctor and check gateway logs (openclaw gateway logs) while reproducing—the failure is often a denied tool, timeout, or HTTP error the model is not surfacing cleanly to chat.There is no single gateway.mode or tools.security switch whose purpose is "allow all external tools"; you configure the tool profile, allowlists, exec/network policy, and skills so the intended calls are real, allowed, and testable.
Error message: "disconnected (1008): unauthorized: gateway token missing" or "gateway token missing (open a tokenized dashboard url or paste token in control ui settings)"
Possible causes:
Solutions:
openclaw gateway --token YOUR_TOKENopenclaw doctor --generate-gateway-token then open a tokenized dashboard URL: openclaw dashboard --no-openNote (2026.2.19+): If you don't set gateway auth, OpenClaw can now auto-generate and persist a gateway.auth.token at startup so the Control UI and clients can connect. You can still set gateway.auth.mode: "none" explicitly for local-only loopback setups.
Error: disconnected (1008): pairing required or pairing required openclaw
The Control UI or client must complete pairing before it can connect. Open the OpenClaw dashboard (or your tokenized URL), go to settings/Devices (or equivalent), and complete the pairing step. For DM channels (e.g. Telegram, WhatsApp), use openclaw pairing approve <channel> <code> to approve new contacts. See Security Guide for DM pairing and allowlists.
Pairing CLI (2026.2.21): pairing list and pairing approve default to the sole available pairing channel when omitted, so you can recover from "pairing required" without guessing channel arguments (handy for TUI-only setups).
Managing paired devices (2026.2.19+): To remove a device or clear pairing state, use openclaw devices remove for a specific device, or openclaw devices clear --yes [--pending] to clear paired entries and optionally reject pending requests. Config also supports device.pair.remove for hygiene flows.
Error message: "gateway already running pid lock timeout"
Possible causes:
Solutions:
ps aux | grep openclaw (Linux/macOS)rm ~/.openclaw/gateway.lockkillall openclaw (Linux/macOS)openclaw gateway restartRun openclaw doctor to perform comprehensive health checks:
openclaw doctor [--fix]
Tip: Use openclaw doctor --fix to automatically fix common issues like permission problems, missing directories, and configuration errors.
Recent behavior (2026.2.19+): When memory.backend is qmd, doctor no longer warns about missing embedding providers (QMD manages embeddings internally). Doctor also avoids rewriting your config with new gateway.auth.token defaults during repair unless it detects real config changes, reducing accidental token duplication.
Enable verbose logging to diagnose issues:
openclaw gateway --verbose
Or set verboseLevel in your configuration file for persistent verbose output.
Log locations:
If the Gateway appears locked or won't start:
~/.openclaw/gateway.lockrm ~/.openclaw/gateway.lockIf Gateway is running as a background service:
launchctl list | grep openclawsystemctl --user status openclaw-gatewayjournalctl --user -u openclaw-gateway (Linux) or check Console.app (macOS)systemctl --user restart openclaw-gateway (Linux)On Linux, browser control may require additional setup:
sudo apt install chromium-browser (Debian/Ubuntu)If you're still experiencing issues:
openclaw doctor and review all output