openai / openai/codex

[macOS, 26.901.51231] Chrome is discovered, but browser-control calls fail with nodeRepl.fetch request failed

Open
#43,787 6 comments 0 reactions 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

What version of the Codex App are you using (From “About Codex” dialog)?

ChatGPT desktop / Codex-integrated app 26.901.51231 (build 8109).

What subscription do you have?

Pro 5x

What platform is your computer?

macOS 26.6, Apple Silicon (arm64). uname -mprs: Darwin 25.6.0 arm64 arm.

What issue are you seeing?

The bundled Browser plugin discovers Chrome successfully, but basic control requests consistently fail with:

nodeRepl.fetch request failed

Tested operations:

Operation Result
Browser runtime initialization and Chrome discovery Succeed
Chrome documentation retrieval Succeeds
chrome.nameSession(...) Fails
chrome.tabs.list() Fails
chrome.user.openTabs() Fails

Environment details:

  • Google Chrome: 152.0.7977.76
  • Bundled Browser plugin: 26.901.51231
  • ChatGPT Chrome extension: 1.26.901.11451 observed before reinstall

The Chrome extension side panel loads. Opening https://stripe.com through normal Chrome UI interaction also succeeds. The reported control failure occurs before navigating to that website.

What steps can reproduce the bug?
  1. Open Chrome with the ChatGPT extension enabled and the desktop app running.
  2. In a local desktop chat, ask the agent to use Chrome to open https://stripe.com.
  3. Initialize the bundled Browser runtime and select Chrome using the documented API.
  4. Run the following operations separately:
const chrome = await agent.browsers.get("chrome");
nodeRepl.write(await chrome.documentation()); // succeeds

await chrome.nameSession("Chrome connection test"); // fails
await chrome.tabs.list();                          // fails independently
await chrome.user.openTabs();                      // fails independently

The same error remains after initializing the Browser runtime from scratch in a fresh Node REPL session. This is not limited to reusing a stale browser handle.

What is the expected behavior?

Codex should be able to list and control Chrome tabs after discovering the browser. If a request fails, the error should identify the failing component or expose an actionable underlying cause.

Additional information

Diagnostics completed:

  • Chrome is installed and running; the extension is installed and enabled.
  • The bundled native-host manifest check passes, including the host name and allowed extension origins.
  • The native-host executable exists and is running.
  • codesign --verify --strict passes for the native host, and its signature identifies OpenAI OpCo, LLC.

Recovery attempts that did not restore control:

  • Opening a new Chrome window in the profile selected by the bundled diagnostic tool.
  • Disabling and re-enabling the ChatGPT Chrome extension.
  • Reinstalling the Chrome extension.
  • Re-selecting Chrome after the old browser connection became unavailable.
  • Initializing the runtime from scratch and retrying in a fresh Node REPL session.

Desktop logs also contain this warning during the diagnostic period:

browser-use native pipe rejected socket peer reason=missing-code-signing-identity

The warning does not identify the rejected peer. Because the installed native host passes signature verification, I cannot attribute this warning to that executable or confirm that it causes the control failure. Proxy inheritance has not been verified as a cause either.

Related: #43385 reports highly similar behavior on the same app/plugin version. This report adds a reproduction where the native host passes OpenAI signature verification. #21713 describes a potentially related proxy issue in an older version; I have not established that it is the same cause here.

This report omits account identifiers, session IDs, local usernames, private URLs, credentials, and raw log files.

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 by reproducing the documented Browser runtime flow in a fresh Node REPL: get Chrome, call documentation(), then nameSession(), tabs.list(), and user.openTabs(). Review the native-host manifest checks and the desktop log warning about a missing code-signing identity. Done means Chrome control calls succeed or failures expose an actionable component and cause.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, macos, node.js
Domain
desktop, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.