Install
openclaw skills install browser-recoverRecover the local Chromium/Chrome environment when browser tool calls fail. Use when encountering (1) Browser startup failures, (2) CDP connection errors (Target closed, ECONNREFUSED, timeout), (3) Stale browser processes blocking new instances, (4) Port conflicts on 9222/18800, (5) Browser page freezes causing subsequent tool calls to fail. Automatically kills stale processes, clears lock files, releases ports, and retries the original browser task once.
openclaw skills install browser-recoverAutomated recovery for OpenClaw browser environment failures.
When a browser tool call fails, follow this workflow:
scripts/check_state.sh to inspect current statescripts/recover.sh to clean up| Error Pattern | Likely Cause | Recovery Action |
|---|---|---|
Target closed | Stale CDP connection | recover.sh --kill-processes |
ECONNREFUSED on port 9222/18800 | Port conflict | recover.sh --clear-ports |
timeout during browser.start | Lock file conflict | recover.sh --clear-locks |
| Multiple chromium processes | Zombie processes | recover.sh --full |
Profile in use | Stale lock files | recover.sh --clear-locks |
Diagnose browser environment without making changes.
Usage:
bash scripts/check_state.sh
Output:
Clean up stale browser resources.
Usage:
# Full recovery (default)
bash scripts/recover.sh
# Specific actions
bash scripts/recover.sh --kill-processes
bash scripts/recover.sh --clear-ports
bash scripts/recover.sh --clear-locks
# Explicit full recovery
bash scripts/recover.sh --full
Actions:
Configuration:
~/.openclaw/config/openclaw.json for browser settingsSession-level tracking:
Implementation:
Attempt 1: browser fails → diagnose → recover → retry → success ✓
Attempt 2: browser fails → diagnose → recover → retry → fails → STOP
When to stop:
DO:
~/.openclaw/browserDON'T:
~/.config/chrome, etc.)kill -9 without verificationSee references/safety.md for detailed guidelines.
If recovery fails or behaves unexpectedly:
check_state.sh to diagnose~/.openclaw/logs/~/.openclaw/config/openclaw.jsonScripts automatically read OpenClaw config for:
browser.debugPort)browser.userDataDir)See references/configuration.md for:
User: "Open https://example.com"
Assistant: [calls browser tool]
Error: "ECONNREFUSED on port 9222"
Assistant: Detected port conflict. Running recovery...
[runs check_state.sh]
[runs recover.sh --clear-ports]
[waits 2 seconds]
[retries browser tool]
Success: Browser opened https://example.com