[macOS, 26.901.51231] Chrome is discovered, but browser-control calls fail with nodeRepl.fetch request failed
Nobody has claimed this yet.
- 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?
- Open Chrome with the ChatGPT extension enabled and the desktop app running.
- In a local desktop chat, ask the agent to use Chrome to open https://stripe.com.
- Initialize the bundled Browser runtime and select Chrome using the documented API.
- 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 --strictpasses 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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