openai / openai/codex

macOS built-in browser: page commands time out while tab metadata and blank-page DOM work (26.901.51231)

Open
#43,152 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

app browser bug tool-calls
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Environment

  • macOS desktop application version: 26.901.51231.
  • Installed application name: ChatGPT.app; bundle identity: com.openai.codex.
  • Bundled unified-computer-use/browser plugin version: 26.901.51231.
  • Target: the desktop application's built-in browser (iab), not external Chrome.
  • Reproduction window: 2026-09-06 02:38–02:49 UTC.

Issue

Tab discovery and handle lookup work, and a new blank page can be read, but page commands on an existing or freshly opened FinBayes HTTPS page hang until the outer tool deadline resets the REPL. The issue is reproduced but not fixed; the exact internal stalled step is not established.

Reproduction and observed results

  1. Select the built-in browser using the supported cua.getBrowser({id:"iab"}) entry point.
  2. browser.tabs.list() succeeds in milliseconds and returns existing website tabs.
  3. browser.tabs.get(observedTabId) succeeds in milliseconds.
  4. tab.playwright.domSnapshot() on an existing FinBayes HTTPS page hangs until the 20-second outer tool deadline resets the REPL.
  5. A newly created about:blank tab returns an empty DOM snapshot in 22 ms.
  6. A call containing navigation of that blank tab to the same HTTPS site followed by DOM capture times out at 25 seconds. A fresh tab list still reports about:blank. This proves navigation did not complete, not exactly where it stalled.
  7. Normal app navigation back to the current task succeeds but does not restore page reads.
  8. A small read-only DOM evaluation with a 3-second method deadline also fails to return before the 10-second outer deadline. No page-level error was received.
  9. Opening the website through the normal side-panel opening tool creates a fresh website tab, confirmed by tab metadata and webview attachment logs. A DOM snapshot on that fresh tab still hits the 10-second outer deadline.
  10. Closing diagnostic tabs succeeds; original user tabs are preserved.

No page submissions, financial actions, login changes, cookie clearing, security-policy changes, application restarts, or Chrome restarts were performed in this diagnostic sequence. FinBayes source code was not modified.

Relevant local host log findings

Some getInfo discovery requests succeed while others in the same batch report:

No ChatGPT browser route is available for browser session

The same logs also show a successful mapping from the real task ID to a temporary client-new-thread:<id> sidebar route, successful blank-tab debugger-listener registration, and explicit sidebar owner synchronization back to the real task route. Consequently, the different IDs are not sufficient evidence of a broken alias, and the failed discovery requests are not yet correlated to the hanging page commands.

For the fresh website tab, the host records normal webview creation, attachment, and browser-use active-state synchronization, but the agent does not receive the DOM result.

Established boundary and open diagnosis

  • Established: the issue occurs on the in-app page-command path despite working tab discovery and blank-page reading. Reopening an ordinary website tab does not resolve it.
  • Not established: whether the stalled step is origin/access approval, command dispatch, debugger attachment, or page execution/response routing.
  • Not established: that authentication causes the issue, that security intentionally forbids the website, or that external Chrome is involved.
  • Not established: that this is a known defect fixed by a particular application update.

Requested maintainer investigation

Correlate one page command across the access check, selected endpoint, sidebar route, debugger attach, and response path. A rejected or unavailable operation should produce a bounded, actionable error rather than require the caller's REPL to time out. Determine whether the failed discovery requests are benign probes or related to the hang.

Expected behavior / resolution acceptance

On the supported in-app browser, read both the existing and a freshly opened website tab, perform a harmless UI interaction and obtain fresh DOM state, then repeat after switching between the local and hosted FinBayes pages. No Chrome restart, login reset, or security weakening should be required. A successful tab list alone does not meet acceptance.

Possibly related

#42790 reports working metadata but delayed DOM/AX operations on Windows. This report adds a macOS in-app reproduction, a successful blank-page control, and failed fresh website-tab recovery. A shared root cause is not established.

This report deliberately omits raw logs, task identifiers, account information, credentials, private source code, and unrelated browsing history.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with cua.getBrowser({id:"iab"}), browser.tabs.list(), browser.tabs.get(), and tab.playwright.domSnapshot(), then correlate one page command with the access check, endpoint, sidebar route, debugger attach, and response path using the host logs. Done means existing and freshly opened website tabs support DOM reads and a harmless interaction with bounded, actionable errors, including after switching between local and hosted FinBayes pages.

Written by the indexing model from the issue text.

Assessment

Domain
desktop-dev, devtools, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.