Desktop: @Browser mention does not bind the open IAB backend to the current task
What version of the Codex App are you using?
Codex Desktop: 26.707.72221 (build 5307)
Bundled Browser plugin: 26.707.72221
Bundled Codex CLI: 0.144.2
What subscription do you have?
Not included in this diagnostic.
What platform is your computer?
macOS 26.1.0, Apple Silicon
What issue are you seeing?
The Codex in-app browser is open and authenticated, and the Browser plugin is installed and enabled. However, using the real @Browser mention chip in the current root Desktop task does not register or bind an IAB backend for that task.
The task's Browser runtime reports:
await agent.browsers.list()
// []
await agent.browsers.get("iab")
// Browser is not available: iab
This remains true after:
- opening the in-app browser and navigating to an authenticated X Article;
- reopening the browser;
- selecting the actual Browser plugin mention (
@Browser) in the composer; - clicking the linked article from that Browser-tagged prompt;
- reinitializing the bundled Browser client in the same task.
The native app has IAB socket endpoints open, but none matches the current task/session filter used by the bundled Browser client. Submitting the proper Browser-tagged prompt did not create a new matching endpoint.
This appears to be a Desktop task-to-IAB session binding or backend registration failure, rather than a missing plugin or a closed browser.
What steps can reproduce the bug?
- On Codex Desktop 26.707.72221 for macOS, install and enable
browser@openai-bundled. - Open the Codex in-app browser and sign in to a site such as X.
- Open an authenticated page, for example an X Article.
- In the same root Desktop task, select the real
@Browserplugin mention chip and ask it to open the article URL. - Initialize the bundled Browser client as documented by the Browser skill.
- Run:
await agent.browsers.list()
await agent.browsers.get("iab")
- Observe that the backend list is empty and
get("iab")throwsBrowser is not available: iab.
What is the expected behavior?
After the user opens the built-in browser and explicitly tags @Browser in the current root Desktop task, Codex should bind or register that task's IAB backend.
await agent.browsers.list()
should include an iab backend, and:
await agent.browsers.get("iab")
should succeed.
If binding fails, the UI/runtime should report a specific session-registration error instead of returning an empty backend list.
Additional information
Diagnostics performed:
codex plugin listexited 0 and reportedbrowser@openai-bundledinstalled and enabled.- Browser-related feature flags were enabled:
in_app_browser,browser_use,browser_use_full_cdp_access,browser_use_external, andcomputer_use. - The app and Browser plugin versions match.
- Native IAB sockets existed and were owned by the Codex desktop app, but no endpoint matched the current task/session.
- Reinitializing the same bundled Browser client did not change discovery.
- The current Browser client caches the first empty discovery result and exposes no public refresh method, which may compound recovery after a late backend registration.
- No cookies, local storage, session contents, account identifiers, task IDs, socket UUIDs, or private page content were inspected or included.
Related reports:
- #26470 covers the broader case where installed Browser/Chrome plugins expose no registered backend.
- #32664 covers backend propagation differences across Desktop, CLI, and collaboration subagents.
- #20678 covers earlier IAB/Node runtime connection and session ownership failures.
The narrower behavior here is that a root Desktop task still has no matching IAB backend after the browser is visibly open and the actual @Browser mention is submitted in that same task.
2 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Confirmed the same backend-registration symptom on a newer Codex Desktop build.
Environment
https://chatgpt.com/and authenticatedFresh reproduction
```js
await agent.browsers.list()
// []
await agent.browsers.get("iab")
// Browser is not available: iab
```
The result remains an empty backend list and
Browser is not available: iab.This confirms that the issue still reproduces in 26.721.41059 after a full application restart. The browser UI and authenticated page are present, but the current root task receives no matching IAB route. This blocks workflows that need the agent to interact with an authenticated site through the user-opened in-app browser.
I did not inspect or include cookies, account identifiers, task/session IDs, socket identifiers, or private page content.