Skip to content

[Bug]: browser.act intermittently times out ("Can't reach the OpenClaw browser control service") while snapshot/open works; sometimes followed by "tab not found" #14503

@sovushik

Description

@sovushik

When using the built-in OpenClaw server-side browser (headless Chrome, profile openclaw), browser.snapshot and browser.open often succeed, but browser.act intermittently fails with:

• Can't reach the OpenClaw browser control service (timed out after 20000ms)
• sometimes followed by: ... (Error: Error: tab not found)
This happens even though the gateway is reachable and the browser profile can be (re)started. As a workaround we often need to restart the browser profile (browser stop/start) and re-open the page.

Environment

• OpenClaw: 2026.2.9 (stable)
• OS: Linux 6.8.0-100-generic x86_64 (Ubuntu)
• Node: v25.6.1
• Chrome: Google Chrome 145.0.7632.45
• Browser config: headless true, noSandbox=true, profile openclaw
• Gateway bind: loopback (local)
What works

• browser.open creates a tab / targetId
• browser.snapshot returns a valid accessibility tree for that targetId (so the page is loaded and readable)
What fails

• browser.act (e.g., clicking a ref from snapshot) sometimes fails with a 20s timeout reaching the browser control service, despite snapshot/open working moments earlier.
Steps to reproduce (approx.)

  1. Start gateway and browser profile openclaw (headless).
  2. browser.open("https://journal.top-academy.ru/ru/main/dashboard/page/index")
  3. browser.snapshot(...) (works)
  4. browser.act(click, ref=)
    → intermittently fails with the timeout error.
  5. Restarting the browser profile may “fix” it temporarily, but then reusing the old targetId may lead to “tab not found”.
    Logs (excerpt)

From gateway logs (timestamps omitted here for brevity):
info browser/chrome 🦞 openclaw browser started (chrome) profile "openclaw" on 127.0.0.1:18800 (pid 69137)

error [tools] browser failed: Can't reach the OpenClaw browser control service (timed out after 20000ms). Start (or restart) the OpenClaw gateway ...

error [tools] browser failed: Can't reach the OpenClaw browser control service ... (Error: Error: tab not found)

Expected behavior

• If browser.snapshot succeeds for a given targetId, browser.act should be able to operate on the same tab reliably, or fail with a more specific/diagnostic error (e.g., CDP disconnected) rather than generic “can’t reach control service”.
• After a browser profile restart, the system should either: • automatically invalidate/refresh targetIds, or
• return a clearer error / provide an automatic recovery path.

Suggested improvements / ideas

  1. Add a single automatic retry for browser.act when the error matches: • “Can’t reach the OpenClaw browser control service (timed out …)”
    • “tab not found”
    Possible recovery: reconnect to the browser control service / restart the profile, re-open the last known URL, then re-run the action once.

  2. Improve diagnostics: log control-service connectivity, CDP status/port, and whether the targetId still exists when the action starts.
    If you’d like, I can provide more logs or try to isolate a smaller repro script.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions