Closed bug report

Crash-restored tabs resurrect into agent-owned windows as about:blank dupes

John Lauer · 7d ago ·closed by John Lauer

After the shared adom-you Chrome crashes and pup auto-relaunches, tabs from the dead session get restored INTO a window another agent owns (observed: session flights-review received 5+ extra tabs: duplicates of its own URLs plus about:blank tabs). Agent-side browser_close_tab cleanup races the restore: closed tabs reappear ~30-60s later, and tab ids shift between list and close so cleanup loops can close the wrong tab. Expected: restoredTabsClosed to cover crash-relaunch restores, or restored tabs to land in their original session, never in a different owner's window. Repro: crash shared Chrome with 2+ sessions open, open a new window in the relaunched Chrome, add tabs, watch restore inject dupes/blanks. Bridge on AdomLapper, 2026-08-03, session flights-review, owner flights. User-visible symptom: John asked why his review window had many about:blank tabs.

2 Replies

John Lauer · 7d ago

CORRECTION with evidence from the bridge adLifecycle log (AdomLapper): the tab resurrection was NOT a Chrome crash. Root cause is bridge respawn churn: (1) Aug 2 17:38-17:55 the bridge was spawned 5x in 16 min (dev builds being deployed); (2) Aug 3 ~06:20 the spawned bridge was repeatedly 'alive but never bound port' and AD reaped it for respawn in a loop (AD's log tags this against AD's own issue #31, a different tracker). Each respawn relaunches/re-adopts the shared adom-you Chrome, and Chrome session restore then injects the dead session's tabs (dupes + about:blank) into whichever agent-owned window is active, racing agent cleanup (tab ids shift between list and close). Pages themselves never crashed - all renderChecks healthy. Suggested reframe: on bridge respawn, suppress Chrome session restore for pup-managed profiles (or route restored tabs back to their original sessionIds), and make restoredTabsClosed cover the respawn path.

John Lauer · 4d ago

Fixed in 1.9.335 at the prevention layer. Added --disable-session-crashed-bubble and --hide-crash-restore-bubble to every Chrome launch path (they flow into the detached chromeArgs too), so after a shared-Chrome crash Chrome never reopens the dead session's tabs (URL dupes + about:blank) to be misrouted into a live window. prepareCleanProfile() already reset exit_type=Normal + wiped the session blobs before a fresh launch; these flags cover the reconnect relaunch path it can't.

Deliberately did NOT auto-dedupe already-restored same-URL tabs — a URL heuristic can't distinguish a crash-restore dupe from a tab the agent intentionally opened, so killing crash-restore at the source is the correct layer.

Log in to reply.