Tools
Browser troubleshooting
For Linux-specific issues (especially snap Chromium), see Browser troubleshooting.
For WSL2 Gateway + Windows Chrome split-host setups, see WSL2 + Windows + remote Chrome CDP troubleshooting.
CDP startup failure vs navigation SSRF block
These are different failure classes and they point to different code paths.
- CDP startup or readiness failure means OpenClaw cannot confirm that the browser control plane is healthy.
- Navigation SSRF block means the browser control plane is healthy, but a page navigation target is rejected by policy.
Common examples:
- CDP startup or readiness failure:
Chrome CDP websocket for profile "openclaw" is not reachable after startRemote CDP for profile "<name>" is not reachable at <cdpUrl>Port <port> is in use for profile "<name>" but not by openclawwhen a loopback external CDP service is configured withoutattachOnly: true
- Navigation SSRF block:
open,navigate, snapshot, or tab-opening flows fail with a browser/network policy error whilestartandtabsstill work
Use this minimal sequence to separate the two:
openclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw tabsopenclaw browser --browser-profile openclaw open https://example.comHow to read the results:
- If
startfails withnot reachable after start, troubleshoot CDP readiness first. - If
startsucceeds buttabsfails, the control plane is still unhealthy. Treat this as a CDP reachability problem, not a page-navigation problem. - If
startandtabssucceed butopenornavigatefails, the browser control plane is up and the failure is in navigation policy or the target page. - If
start,tabs, andopenall succeed, the basic managed-browser control path is healthy.
Important behavior details:
- Browser config defaults to a fail-closed SSRF policy object even when you do not configure
browser.ssrfPolicy. - For the local loopback
openclawmanaged profile, CDP health checks intentionally skip browser SSRF reachability enforcement for OpenClaw's own local control plane. - Navigation protection is separate. A successful
startortabsresult does not mean a lateropenornavigatetarget is allowed.
Security guidance:
- Do not relax browser SSRF policy by default.
- Prefer narrow exact-hostname
allowedHostnamesexceptions over broad private-network access. - Use
dangerouslyAllowPrivateNetwork: trueonly in intentionally trusted environments where private-network browser access is required and reviewed.
Was this useful?