#116893·openclaw

[Bug]: Tabs created by browser click are not tracked or cleaned up

Author: VerlbotCreated Jul 31, 2026Updated Oct 2, 2026
LabelsP2clawsweeper:source-reproimpact:session-stateissue-rating: 🦞 diamond lobster

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Tabs created by a browser click action are not recorded in OpenClaw's tab-ownership tracker, so they escape the configured idle/cap sweeper and lifecycle cleanup.

Steps to reproduce

  1. Start the managed OpenClaw browser with default browser.tabCleanup settings (enabled: true, idleMinutes: 120, maxTabsPerSession: 8, sweepMinutes: 5).
  2. Use browser.open to open a page containing a link that opens a new target/tab.
  3. Use the browser click action on that link.
  4. Confirm that the new target appears in the live browser tab list.
  5. Compare that target with OpenClaw's tracked-tab ownership records, then leave it idle past the cleanup threshold and sweep interval.

Observed instance: clicking a LinkedIn result created target t39. The page remained alive for more than 13 hours and had no ownership/tracking record. In the same managed Chrome session, a control target created directly with browser.open was tracked and automatically reclaimed after 129 minutes.

Expected behavior

A new target created as the direct result of an OpenClaw browser action should inherit the initiating action's session ownership and participate in the same idle, cap, reset, and run-lifecycle cleanup as a target created by browser.open.

Actual behavior

The click-created target is visible through browser tab enumeration but absent from OpenClaw's tracked-tab ownership state. It therefore survives the configured 120-minute idle threshold and five-minute sweeps. The browser process itself remains healthy; no cleanup error is surfaced.

OpenClaw version

OpenClaw 2026.7.1 (2d2ddc4)

Operating system

Ubuntu 24.04.4 LTS

Install method

npm global

Model

openai/gpt-5.6-sol

Provider / routing chain

OpenClaw -> OpenAI

Additional provider/model setup details

The model/provider route does not appear relevant to the defect; ownership is lost after the browser action creates a new Chrome target.

Logs

bash
Default cleanup configuration:
enabled=true idleMinutes=120 maxTabsPerSession=8 sweepMinutes=5

Control target created by browser.open:
tracked=true; automatically closed after 129 minutes; Chrome stayed running

Target created by browser click:
target=t39; visible in browser tab enumeration; tracked=false; still open after >13 hours

Screenshots, recordings, and evidence

  • A controlled browser.open target was reclaimed after 129 minutes, demonstrating that the primary-session idle sweeper was running.
  • The click-created t39 target remained open in the same Chrome session for more than 13 hours and was absent from the ownership tracker.
  • Current configuration documentation describes cleanup as reclaiming "tracked primary-agent tabs." The missing step is registering a child target created by a tracked browser action.

Impact and severity

  • Affected: agents using OpenClaw's managed browser when a click opens a new tab/target.
  • Severity: moderate resource leak and lifecycle-state defect; it does not crash the browser.
  • Frequency: reproduced in the observed click-created target; the control browser.open path cleaned up correctly.
  • Consequence: click-created tabs and their renderer processes can accumulate indefinitely until manually closed or Chrome is restarted.

Additional information

Related but distinct: #40694 concerns whether ordinary primary-task completion should become a cleanup boundary. This report does not require that product decision: the click-created target is not registered at all, so it also escapes the already-supported idle, cap, reset, and isolated-run cleanup boundaries.

Suggested remediation: when a browser action creates a new target, record that target with the initiating action's owner/session identity before returning the action result. Preserve the existing rule that unrelated or user-opened targets are not adopted.