Codex Desktop Chrome plugin connection times out despite extension and native host checks passing
Summary
Codex Desktop cannot connect to the Chrome plugin. The Chrome extension and native messaging host checks both report a healthy setup, but the browser runtime initialization consistently times out before any tab access can occur.
What I was trying to do
Use the Codex Chrome plugin to search for 海明威 in Chrome.
Observed behavior
Repeated attempts to initialize the Chrome browser runtime time out at:
await setupAtlasRuntime({ globals: globalThis });
The timeout happens before calls such as:
await agent.browsers.get("extension");
await browser.user.openTabs();
So the failure appears to be in the Chrome extension/runtime handshake layer, not in page navigation or search.
Troubleshooting already attempted
- Reinstalled / repaired the Codex Chrome plugin from the Codex plugin UI
- Fully quit and reopened Chrome
- Restarted the computer
- Retried the Chrome connection multiple times with longer timeouts
- Confirmed Chrome is running
- Confirmed the Codex Chrome Extension is installed and enabled
- Confirmed the native messaging host manifest exists and appears correct
Diagnostic results
Chrome running check
Google Chrome running: yes
process: Google Chrome
Extension check
{
"extensionId": "hehggadaopoacecdllhhajmbjkdcmajg",
"profilePath": "/Users/liuxiancong/Library/Application Support/Google/Chrome/Default",
"installed": true,
"registered": true,
"enabled": true,
"disabled": false,
"versions": ["1.1.4_0"]
}
Native host manifest check
{
"manifestPath": "/Users/liuxiancong/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.openai.codexextension.json",
"expectedHostName": "com.openai.codexextension",
"actualHostName": "com.openai.codexextension",
"hasExpectedOrigin": true,
"correct": true,
"problem": null
}
Additional issue
The plugin helper script for opening a Chrome window also fails:
Command failed: open -n -a /Applications/Google Chrome.app --args --profile-directory=Default --new-window about:blank
The application /Applications/Google Chrome.app cannot be opened for an unexpected reason,
error=Error Domain=NSOSStatusErrorDomain Code=-10827 "kLSNoExecutableErr: The executable is missing"
However, Chrome itself is installed and running, and the browser check reports:
Google Chrome
version: 148.0.7778.96
path: /Applications/Google Chrome.app
Environment
- macOS
- Chrome version:
148.0.7778.96 - Codex Chrome Extension version:
1.1.4_0 - Extension ID:
hehggadaopoacecdllhhajmbjkdcmajg - Chrome profile detected by checks:
Default - Chrome app path reported by checks:
/Applications/Google Chrome.app
Expected behavior
Codex should be able to establish a connection to the Chrome extension, read open tabs, and perform browser automation tasks.
Actual behavior
Chrome runtime initialization consistently times out even though extension and native host checks pass.
Suggested investigation areas
- Whether
setupAtlasRuntimecan hang indefinitely during native messaging or extension handshake when checks appear healthy - Whether the failure path can emit a clearer diagnostic instead of only timing out
- Whether
open-chrome-window.jsis using a macOS Chrome launch path or invocation pattern that can fail withkLSNoExecutableErrdespite Chrome being installed and running
6 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
If you use a VPN, try turning on TUN mode.
This works. Thank you.
I’m seeing a closely related failure on macOS after reinstalling the Codex Chrome plugin/extension. The installation checks all pass, but the Chrome backend remains unstable, especially around remote page navigation/control.
Environment observed:
148.0.7778.168openai-bundled/chrome 0.1.71.1.4_0hehggadaopoacecdllhhajmbjkdcmajgDefaultChecks that pass:
chrome-extension://hehggadaopoacecdllhhajmbjkdcmajg/Repro/observations:
browser.user.openTabs()succeeded 10/10 times in one short run, usually returning in 1-3 ms.127.0.0.1works normally through the Chrome backend:tab.goto(localhost)succeedstab.goto("https://example.com/")timed out after 30s and reset the JS kernelabout:blanktab.goto("https://www.bilibili.com/v/popular/all")times outnative pipe closed before responseBrowser is not available: extensionabout:blankwindow, but when the native pipe is broken, cleanup cannot close it, leaving blank tabs behind.The important boundary is that local-page control works, while remote-page
goto/page-control hangs and can break the native pipe. That makes this look less like a Chrome extension installation issue and more like a Chrome backend/browser-use/native-pipe/app-server runtime issue triggered by remote navigation/control.Reinstalling the Codex Chrome plugin/extension did not fix it; it changed the extension instance ID and restored communication briefly, but the same remote navigation/control failures came back.
Related but slightly different reproduction from Windows / UK: #24969
In my case the Chrome extension/native host is not merely timing out; the app UI itself disables Google Chrome under Computer use with:
Disabled by your organization or unavailable in your regionLocal checks:
connected.computer_use=trueandbrowser_use_external=true.This may be connected to remote-page/Chrome backend instability, but the first-order problem appears to be Chrome/Computer Use availability/provisioning being disabled before the backend can be used.
Additional macOS evidence that separates two failure classes which can otherwise both surface as “Chrome unavailable” or
-10827.Environment:
1. Signed-bundle metadata detritus
The installed Chrome bundle had 66 empty-looking
com.apple.FinderInfoattributes under signed paths.codesign --verify --deep --strictrejected it as signed-code detritus. Removing only those attributes restored strict signature validation and Gatekeeper acceptance; three fresh Chrome-plugin bindings then selected the extension and listed tabs successfully.Controlled comparison:
cp -Randdittocopies also had zero and passed strict verification.This proves a post-source metadata writer is sufficient, but the historical writer was not preserved. I cannot attribute it to Google, Codex, Finder, or a particular copy/update command. It is still a useful diagnostic before interpreting
kLSNoExecutableErrliterally.2. Troubleshooting-helper execution-surface mismatch
The bundled Chrome troubleshooting docs say to use
node_repl, but directly importingopen-chrome-window.jsthere is denied at itsnode:processimport beforemain()oropenruns. Invoking the same bundled script through a host command surface succeeds against the now-healthy Chrome installation.Therefore the direct-import denial cannot itself produce LaunchServices
-10827; a historical-10827belongs to a distinct host/external launch path. This is adjacent to the broader macOS GUI-launch sandbox boundary in #30043.Requested product fixes:
node_repl.Local workaround used here was to preserve the runtime restrictions, validate strict signing/Gatekeeper plus targeted FinderInfo/ResourceFork state, and run only the exact bundled troubleshooting CLI through an allowed host command surface. No Chrome profile, extension, native host, or signed app was patched.