Repository navigation
[Bug]: Agent drives a signed-out headless page while the Browser panel shows the user's signed-in page for the same tab #17334
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- In the desktop app, start a Claude thread. Keep the Browser panel for that thread closed, or have another thread focused.
- Have the agent open a page that needs a login, e.g.
preview_navigatetohttps://app.revenuecat.com/projects/<id>/integrations/webhooks. The user's desktop browser profile is already signed in to that site. - Wait more than 10 seconds, then open the thread's Browser panel and select the tab the agent opened.
- Ask the agent to act on the page (
preview_snapshot, click, and so on).
Expected behavior
The agent and the user see and drive the same page. The panel shows the agent's tab, and agent actions land on it with the user's profile and sign-ins, just as they do when the panel is already open when the tab is created.
Actual behavior
The two views split. The panel renders the tab in a desktop <webview> using the user's profile, so the user sees the signed-in dashboard. The agent keeps driving a separate headless page in an isolated context, so it sees the login page and gets 403s. preview_status reports visible: false. Both share the same tabId and the same URL bar text (/login). Closing the tab and opening a new one reproduces it whenever the panel misses the attach window.
In my session this turned into a 5-turn argument: the user kept saying "YOUR TAB IS SIGNED IN" and the agent kept seeing a login page. Both were right.
Cause, as far as I can see: ServerBrowser.createTab decides once whether a tab uses the desktop page (desktopRenders → awaitAttached, DESKTOP_ATTACH_TIMEOUT = 10s). On timeout it falls back to headless, and for an agent-owned tab that means an isolated context. When the desktop attaches later, DesktopBrowserChannel publishes attached, but nothing in ServerBrowser subscribes to it. The only subscriber is the detached handler. The headless page is never handed over to the desktop page.
Impact
Major degradation or frequent failure
Version or commit
T3 Code (Nightly) 0.0.46-nightly.20261008.2833. Code paths checked against main @ 48b71f0.
Environment
macOS 27.0.1, desktop app (Nightly), Claude provider (claude-opus-5-5), server browser runtime (runtime: "server")
Logs or stack traces
# Agent: preview_status right after the user said the tab is signed in
{"available":true,"visible":false,"tabId":"tab_3_52957532-…","url":"https://app.revenuecat.com/login",
"control":{"owner":"agent","ownedByCaller":true},"tabs":[{"tabId":"tab_3_52957532-…","url":"https://app.revenuecat.com/login"}]}
# Agent: t3_preview_list
{"sessions":[{"tabId":"tab_3_52957532-…","navStatus":{"_tag":"Success","url":"https://app.revenuecat.com/login"},
"runtime":"server","automationOwner":"…","reveal":true}]}
# Agent: preview_snapshot (visibleText + console)
"Log in\n\nWelcome back! Please enter your email and password to continue. …"
consoleEntries: "Failed to load resource: the server responded with a status of 403 ()" (x3)
# After t3_preview_close + preview_open (reuseExistingTab:false): new tab_4, same result: /login page and 403sScreenshots, recordings, or supporting files
The user's view: the Browser panel on the right shows the signed-in RevenueCat Overview while the URL bar reads /login. The agent's message on the left embeds its own snapshot of the same tab, which shows the login page. Revenue figures are redacted.
The agent's preview_snapshot image of the same tabId:
Workaround
Do the logged-in steps by hand in the panel. Alternatively, have the panel already open on that thread before the agent opens the tab, so the desktop attaches within 10 seconds.


Activity
juliusmarminge commentedon Oct 8, 2026
Note
Grok responding on behalf of Julius.
Closing as a duplicate of #16901 — same
ServerBrowser.createTab/DESKTOP_ATTACH_TIMEOUT(10s) path: when the desktop panel attaches after the timeout, the agent keeps the headless isolated page while the panel shows the user's signed-in webview for the sametabId.Please follow and add any extra detail on #16901.