Desktop: @Browser mention does not bind the open IAB backend to the current task

Open 💬 1 comment Opened Jul 15, 2026 by koco-co

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?

  1. On Codex Desktop 26.707.72221 for macOS, install and enable browser@openai-bundled.
  2. Open the Codex in-app browser and sign in to a site such as X.
  3. Open an authenticated page, for example an X Article.
  4. In the same root Desktop task, select the real @Browser plugin mention chip and ask it to open the article URL.
  5. Initialize the bundled Browser client as documented by the Browser skill.
  6. Run:
await agent.browsers.list()
await agent.browsers.get("iab")
  1. Observe that the backend list is empty and get("iab") throws Browser 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 list exited 0 and reported browser@openai-bundled installed and enabled.
  • Browser-related feature flags were enabled: in_app_browser, browser_use, browser_use_full_cdp_access, browser_use_external, and computer_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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗