Problem: Failed to start Chrome CDP on port 18800
Root cause
On Ubuntu and most Linux distros,apt install chromium installs a snap
wrapper, not a real browser:
The profile appears to be in use by another Chromium process: staleSingleton*lock files in the managed profile directory. OpenClaw removes these locks and retries once when the lock points at a dead or different-host process.Missing X server or $DISPLAY: a visible browser was explicitly requested on a host without a desktop session. Local managed profiles fall back to headless mode on Linux when bothDISPLAYandWAYLAND_DISPLAYare unset. If you setOPENCLAW_BROWSER_HEADLESS=0,browser.headless: false, orbrowser.profiles.<name>.headless: false, remove that headed override, setOPENCLAW_BROWSER_HEADLESS=1, startXvfb, runopenclaw browser start --headlessfor a one-shot managed launch, or run OpenClaw in a real desktop session.
Solution 1: install Google Chrome (recommended)
~/.openclaw/openclaw.json:
Solution 2: use snap Chromium in attach-only mode
If you must keep snap Chromium, configure OpenClaw to attach to a manually-started browser instead of launching it:Verify the browser works
Config reference
On Raspberry Pi, older VPS hosts, or slow storage, use a manually launched
browser with
attachOnly when Chrome needs more time to expose its CDP HTTP
endpoint or become ready than the managed-browser deadline permits.
Problem: No Chrome tabs found for profile=“user”
You are using theuser (existing-session / Chrome MCP) profile and no
tabs are open to attach to.
Fix options:
- Use the managed browser instead:
openclaw browser --browser-profile openclaw start(or setbrowser.defaultProfile: "openclaw"). - Keep local Chrome running with at least one open tab, then retry with
--browser-profile user.
useris host-only. On Linux servers, containers, or remote hosts, prefer CDP profiles instead.userand otherexisting-sessionprofiles share the current Chrome MCP limits: ref-driven actions only, one file per upload, no dialogtimeoutMsoverrides, nowait --load networkidle, and noresponsebody, PDF export, download interception, or batch actions.- Local
openclaw-driver profiles auto-assigncdpPort/cdpUrl; only set those manually for remote CDP. - Remote CDP profiles accept
http://,https://,ws://, andwss://. Use HTTP(S) for/json/versiondiscovery, or WS(S) when your browser service gives you a direct DevTools socket URL.