Codex Desktop browser-use IAB backend sockets close without getInfo response on macOS
What version of the Codex App are you using (From “About Codex” dialog)?
Codex Desktop 26.506.21252 / bundle build 2575 on macOS arm64.
I also tested side-by-side rollbacks:
- Production
26.506.20924/ build2565: same IAB failure. - Production
26.429.61741/ build2429: app could launch, but I could not send messages, so it was not usable for this test.
What subscription do you have?
ChatGPT account in Codex Desktop. (Exact plan omitted from public report.)
What platform is your computer?
macOS, Apple Silicon / arm64.
What issue are you seeing?
The browser-use:browser plugin cannot initialize the in-app browser backend. The Codex app advertises the IAB backend in tool metadata, and Codex owns sockets under /tmp/codex-browser-use, but the sockets close immediately without answering the JSON-RPC getInfo request. As a result, setupAtlasRuntime({ globals: globalThis, backend: "iab" }) fails before any browser tab can be controlled.
Observed error from the Node REPL call:
Failed to connect to browser-use backend "iab". No Codex IAB backends were discovered. Discovery diagnostics: listedPipes=3, candidates=5, browsers=0, iabBrowsers=0, failures=["discovered/connect/Error","discovered/connect/Error","discovered/connect/Error","legacy-iab/connect/Error","legacy-chrome/connect/Error"], pipeListingError=none.
I also directly probed the sockets with a length-prefixed JSON-RPC getInfo request. Each socket accepted the connection and then closed with no data:
socket probe 2026-05-08T09:47:12.013Z
2c7620c1-81a9-44e0-9815-ea8b8991d4b1.sock close <no data>
364e3c9d-f4f8-46ef-b9f1-e26abc88f031.sock close <no data>
The sockets are present and owned by Codex:
/tmp/codex-browser-use/*.sock
lsof -U shows the sockets held by the Codex process.
What steps can reproduce the bug?
- Launch Codex Desktop
26.506.21252on macOS arm64. - Open the in-app browser on a local app URL, e.g.
http://127.0.0.1:5173/.... - In a thread with the
browser-use:browserskill available, run:
const { setupAtlasRuntime } = await import('/Users/<user>/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha1/scripts/browser-client.mjs');
await setupAtlasRuntime({ globals: globalThis, backend: 'iab' });
- Observe that browser-use discovery reports
browsers=0, iabBrowsers=0even though/tmp/codex-browser-use/*.sockexists.
What is the expected behavior?
At least one Codex IAB backend should respond to getInfo; discovery should produce browsers=1, iabBrowsers=1 for the current session, and agent.browser.tabs.selected() should be able to control the in-app browser tab.
What do you see instead?
The sockets close immediately without a getInfo response, so browser-use cannot discover or control the in-app browser.
Additional information
Local diagnostic bundle was generated with:
/tmp/codex-iab-diagnostics-20260508-114711.txt
I can provide sanitized excerpts if useful. I did not attach the full file publicly because it contains local paths/process arguments.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗