Skip to content

Codex Remote thread loses in-app Browser binding; restart registers IAB to a blank local thread #35813

Description

@VDrozd-Cyclis

What version of the Codex App are you using?

Codex Desktop 26.721.41059 / build 5848 on macOS 26.6 arm64.

Browser plugin: browser@openai-bundled version 26.721.41059.

What subscription do you have?

ChatGPT account in Codex Desktop.

What platform is your computer?

macOS, Apple Silicon / arm64.

What issue are you seeing?

The built-in Browser / IAB works in a conversation, but later becomes undiscoverable when the same conversation is continued through Codex Remote. The browser plugin remains installed and enabled. Reopening the in-app browser repeatedly does not restore the binding.

After restarting Codex Desktop, the IAB backend starts successfully and its Unix socket is ready, but it is registered to a new blank local thread (client-new-thread:...) instead of the active remote/slingshot conversation. From the active remote turn, Browser discovery still returns no backends (agent.browsers.list() returns []; requesting iab reports unavailable).

This appears to be a conversation/session routing problem between the local desktop IAB owner and the active Codex Remote thread, not a plugin installation or browser-startup failure.

The problem also prevents a reliable Safari fallback in the same remote desktop state: Safari can be running and report documents through its own AppleScript API, while the Codex Computer Use accessibility bridge returns cgWindowNotFound and cannot see its windows.

Steps to reproduce

  1. On macOS, open a Codex Desktop conversation and enable the bundled Browser plugin.
  2. Open and use the in-app Browser successfully in that conversation.
  3. Continue the same conversation through Codex Remote.
  4. Attempt another Browser action. The Browser backend may no longer be discoverable from the remote turn.
  5. Reopen the in-app browser multiple times; discovery remains empty.
  6. Restart Codex Desktop.
  7. Observe that Browser backend startup succeeds, but the backend is registered to a fresh client-new-thread:... local thread rather than the active remote/slingshot conversation.
  8. Retry Browser discovery from the remote conversation; it still returns no IAB backend.

Expected behavior

A Browser session opened for a conversation should remain bound to that conversation when it is continued through Codex Remote. If the desktop app restarts, the local IAB backend should reattach to the active remote conversation, or the remote turn should be able to request/create a correctly scoped IAB session.

Actual behavior

The backend is healthy but scoped to the wrong conversation. Reopening or restarting creates/attaches it to a blank local thread, leaving the remote conversation unable to discover or control it.

Relevant log evidence

After restart, the desktop log showed:

IAB_LIFECYCLE received browser sidebar owner sync ... conversationId=client-new-thread:...
IAB_LIFECYCLE registered browser sidebar thread conversationId=client-new-thread:...
browser_use_iab_backend_startup_started ... backend=iab ... sessionId=client-new-thread:...
browser_use_iab_backend_startup_ready backend=iab pipePath=/tmp/codex-browser-use/...sock ... sessionId=client-new-thread:...

Meanwhile, the active task was still running as a Codex Remote/slingshot conversation and could not discover any browser backend.

No credentials, website content, or personal data are required to reproduce this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbrowserbugSomething isn't workingremotesessionIssues involving session (thread) management, resuming, forking, naming, archiving

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions