Repository navigation
[macOS][26.908.70816] In-app browser AX/DOM reads hang on example.com; discovery works, persists after reinstall #45868
Description
Summary
The desktop in-app browser visibly loads pages, but structured page-reading operations repeatedly hang until the outer CUA tool times out and resets its JavaScript kernel. This also reproduces on the public, unauthenticated https://example.com/ page, across a separate diagnostic task, and after the user uninstalled and reinstalled the app.
No specific root cause is established. This report is submitted at the affected user's explicit request.
Environment
- macOS, Apple Silicon (arm64).
- Installed app: ChatGPT.app, bundle identifier
com.openai.codex. - Version verified before reinstall:
26.908.70816, build9275. - The app-configured production update feed listed the same version when checked on 2026-09-16.
- Exact post-reinstall app version and subscription were not re-verified.
Minimal public reproduction
- Manually open
https://example.com/in the desktop in-app browser; the page visibly loads. - In a task, run
await cua.getState()throughmcp__cua_repl.js. - Use the actual browser and tab IDs returned by that inventory, then run:
var tab = await cua.getTab(actualTabId, { browser: actualBrowserId });
- With an outer tool timeout of 25,000 ms, the call does not return page state. The tool reports:
js execution timed out; kernel reset, rerun your request
After reinstall, inventory succeeded in approximately 0.32 s and returned Example Domain / https://example.com/. The subsequent getTab call with the newly observed ID timed out after approximately 25.02 s. This was not a retry against an old tab handle.
Additional controlled observations
On another loaded website, tested in both the original task and a newly created independent diagnostic task:
| Operation | Observed result |
|---|---|
| Browser/tab inventory | Success |
browser.tabs.get(id) without automatic AX collection |
Success; about 2 ms in the independent task |
| Tab URL/title | Success; about 2 ms in the independent task |
tab.screenshot() |
Success; about 8.05 s in the independent task, showing the loaded page |
| Create tab with automatic initial AX collection | 30 s outer timeout; tab was actually created |
tab.playwright.domSnapshot() |
30 s outer timeout and kernel reset |
tab.playwright.evaluate(() => document.body.innerText, undefined, { timeoutMs: 10000 }) |
Still did not return within the 30 s outer timeout |
These are individual observed measurements, not benchmark averages. A blank-page DOM snapshot also succeeded once in approximately 0.03 s. Screenshot success was verified on the other website, not separately claimed for example.com.
Recovery attempts and boundaries
- User reported manual refresh, reopening pages and restarting the desktop app did not recover the behavior.
- Resetting the CUA JavaScript environment did not recover it.
- A separate diagnostic task reproduced the loaded-page structured-reading failures.
- User confirmed there was no visible pending browser approval prompt.
- User uninstalled/reinstalled the app; the public example.com test still failed afterward.
- Before reinstall,
codesign --verify --deep --strict --verbose=4 /Applications/ChatGPT.appoutside the execution sandbox passed (valid on disk; satisfies Designated Requirement). A sandbox-only signature failure was contradicted by that check and is not evidence of app corruption. - No application files or permission settings were patched; no access checks were disabled and no website forms were submitted.
Expected behavior
AX/DOM/text reads should return page content, or fail within the requested timeout with an actionable error identifying the failing layer. An internal 10-second timeout should not silently remain pending until a 30-second outer timeout resets the kernel.
Requested investigation
Please trace where the structured-read request stops progressing, contrasting it with successful tab metadata/screenshot requests, including timeout/cancellation propagation. Current evidence does not identify whether access checks, execution setup, dispatch, or result delivery is responsible.
Related but not identical: #42459 (macOS in-app URL-open timeout), #45576 (Windows Chrome transport failure; in-app DOM reportedly works there).
Privacy
This report intentionally excludes account names, private/enterprise URLs, local user paths, task/session identifiers, screenshots, cookies, credentials, browser storage, and raw logs. Only the public example.com URL is included.
Activity
ielseu commentedon Sep 17, 2026
Follow-up after a full desktop-app restart: the problem still reproduces on 26.911.61220 (build 9647), bundle identifier
com.openai.codex, macOS 26.6.2 / arm64. Version and build were read from the installed app's Info.plist.The user manually has a loaded page open in the in-app browser. This round tested that page; example.com was not retested, so the measurements below should not be interpreted as a fresh public-site reproduction.
cua.getState()cua.listBrowsers()cua.listTabs({browser: actualBrowserId})browser.tabs.get(actualTabId)tab.playwright.evaluate(..., undefined, {timeoutMs: 10000})for basic page controlstab.screenshot({clip:{x:0,y:0,width:800,height:80}})These are single tool-reported timings, not benchmark averages. The last screenshot attempt returned no image, unlike the earlier screenshot success described in the original report.
Recovery attempted: an explicit CUA session reset, fresh browser/tab discovery, direct tab-handle acquisition, and the documented non-Playwright screenshot alternative. These did not restore usable page reading. Local desktop diagnostics recorded the page's DOM-ready event and the CUA MCP service as ready; those markers alone did not predict successful page operations.
No root cause is established. Please investigate where loaded-page requests stop progressing and why the inner 10-second read timeout does not return an actionable error before the outer tool reset.
Submitted at the affected user's explicit request. No account details, private URLs, local user paths, task/session identifiers, raw logs, screenshots, credentials, browser storage, or page/list contents are included.
ninadelrey commentedon Sep 28, 2026
Reproduction persists on 26.924.22138 (build 11645), macOS arm64 — 2026-09-28
This is an additional reproduction of the loaded-page control hang described in this issue. The affected user authorized diagnosis and submission to the official issue tracker. Browser control is still unusable; no root cause or successful fix is claimed.
Verified environment
com.openai.codex.26.924.22138, build11645, read from Info.plist.26.6.2(25G83),arm64, verified with sw_vers/uname.https://example.com/.26.911.61220(build9647) after a full application restart. The new installed version still reproduces them.Current measurements
Each timing is one tool-reported observation, not an average.
cua.getState()cua.getTab({url:'https://example.com/'},{browser:'iab'})cua.getBrowser({url:'https://example.com/'})browser.tabs.list()plus reading packaged troubleshooting guidancebrowser.tabs.get(actualTabId), capability discovery andtab.title()tab.screenshot({fullPage:false})tab.reload()followed by a DOM snapshotMinimal reproduction
https://example.com/in the desktop in-app browser.cua.getTabcall, which automatically collects page state, also times out.Recovery attempts
Sanitized local log observations
During the current reproduction the app logged both completed getInfo requests and repeated warnings:
The same task's earlier startup logged:
These observations do not prove that route loss is the cause of the hang: metadata succeeds, getInfo has successes and failures, and no causal trace has been established. Please correlate route selection and request dispatch with page-operation completion/cancellation.
Expected behavior and impact
Page state, screenshot and reload should complete or return an actionable error within a bounded timeout. Successful metadata discovery should not mask a page-operation transport failure. The issue blocks browser-based acceptance tests and signed-in workflows even though the public test page can be found and its title read.
Privacy
Only this public-page reproduction and sanitized technical observations are included. No private URLs, local user paths, account details, task/session IDs, browser contents, screenshots, credentials, reimbursement data or raw logs are attached. No policy bypass is requested.
ninadelrey commentedon Oct 3, 2026
Retested on 2026-10-04 (Asia/Shanghai) after an app update. Still reproducible.
Environment: macOS 26.6.2 (25G83), arm64; ChatGPT/Codex desktop 26.930.31730, build 12947, prod channel. Built-in updater reports up_to_date.
Minimal reproduction on https://example.com/ using the supported cua_repl API:
Local lifecycle logs show webview attachment, debugger-listener registration and dom-ready for example.com. They also contain "No ChatGPT browser route is available for browser session" alongside successful getInfo completions. That warning is a correlation, not a confirmed root cause.
The earlier full application restart did not resolve this issue. No cookies, login state, security settings, application binaries or project implementation were changed. No private page contents, credentials, session identifiers or raw logs are included here.
Could maintainers advise a supported repair or diagnostic for the per-tab debugger/control transport? Tab metadata works while page control requests hang, including their requested command timeout.
DSVinC commentedon Oct 7, 2026
Additional reproduction on October 7, 2026 (UTC+8), submitted by the affected user's Codex assistant at their explicit request.
Environment: macOS; Codex desktop / bundled Computer Use release
26.930.61225, as reported by application logs and the bundled runtime. The About dialog and exact macOS version were not independently checked for this report.The user fully restarted the desktop app before this round. Application logs confirmed a new application session/process, but usable page observation was not restored.
Each timing below is a single tool-reported observation, not a benchmark average:
cua.getTab(actualTabId, {browser: actualBrowserId}), which automatically collects page stateabout:blankDOM snapshotExact outer error:
The app log recorded a
dom-readyevent for the target URL after navigation, although the navigation tool call did not finish. DOM-ready does not prove full website readiness or establish the cause of the hang.Earlier on the same installation, target-page reading, refresh and screenshot capture succeeded intermittently, followed by recurrent observation/screenshot timeouts. The post-restart round did not produce a new target-page screenshot.
This adds a newer-version occurrence and a useful blank-page comparison: basic discovery, tab lifecycle and blank-page DOM reading can work while loaded-page operations remain unusable. Restarting and replacing the tab did not recover the workflow. We have not established that the cause is identical to every occurrence in this issue, or that policy verification, networking, route selection or debugger transport is responsible. No explicit policy-denial error was returned in these tests.
Could maintainers provide a supported diagnostic or recovery procedure, and investigate where loaded-page requests stop progressing and why they do not return an actionable error before the outer kernel reset?
No app binaries, browser security controls, proxy settings, plugin configuration or website implementation were changed. No private URLs, account details, local paths, task/session IDs, raw logs, page contents, screenshots, cookies or credentials are included. The public target URL is omitted here;
example.comwas not tested in this round and is not claimed as our reproduction.Timmycosmos commentedon Oct 10, 2026
Update (2026-10-10): I can reproduce the same class of issue on the current macOS desktop app, version 26.1007.21159. The in-app browser inventory returns the visible tab and its metadata, but binding/reading that tab with
cua.getTab()hangs until the outer 15-second timeout resets the CUA runtime. Restarting the app did not resolve it; it reproduces across multiple tasks.The desktop log repeatedly reports
No ChatGPT browser route is available for browser session <redacted>. I found and repaired stale persisted browser-session mappings; after restart, the tab metadata matched the active conversation, but the runtime route error and timeout remained. This suggests the failure is still in session-route resolution. No causal root cause is confirmed.This may be related to #52472, which reports a browser route being captured and then displaced by a
client-new-threadhost. The symptom here is specifically the macOS in-app browser's page-read timeout.No account details, target URLs, conversation/session IDs, local paths, raw logs, or screenshots are included.