Browser Use extension backend is hidden/ambiguous when Chrome and AdsPower SunBrowser are both connected

Open 💬 2 comments Opened May 12, 2026 by sleepyy-dog
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What happened?

I am trying to use the Codex Desktop Browser Use / Chrome extension backend with multiple Chromium-like browser instances, including regular Google Chrome and AdsPower SunBrowser fingerprint-browser profiles.

When regular Chrome is open with the Codex extension enabled, Codex Desktop only exposes the regular Chrome extension backend. SunBrowser instances that also have the Codex extension installed do not appear as usable Browser targets.

After closing regular Chrome, Codex Desktop starts exposing SunBrowser extension backends. In my test it exposed two SunBrowser targets, both named Chrome, with tabs from AdsPower/SunBrowser profiles visible via browser.user.openTabs().

This makes it look like the browser backend discovery/selection logic is prioritizing or caching the first regular Chrome extension/native-host connection, and hiding or not registering other connected Chrome-like extension hosts.

Why this seems like a bug

The SunBrowser profiles were not simply missing the extension:

  • The Codex extension was installed in multiple SunBrowser profiles.
  • The extension version was 1.1.4.
  • nativeMessaging permission was present.
  • disable_reasons was empty.
  • Each SunBrowser process had launched extension-host.exe for chrome-extension://hehggadaopoacecdllhhajmbjkdcmajg/.

However, while regular Chrome was open, agent.browsers.list() only returned:

  • one regular Chrome extension backend
  • the Codex in-app browser backend

After closing regular Chrome and resetting/reinitializing the browser runtime, agent.browsers.list() returned two extension backends whose tabs clearly belonged to SunBrowser profiles.

Reproduction outline

  1. Install the Codex Chrome extension in regular Google Chrome.
  2. Install the same Codex extension in multiple AdsPower SunBrowser profiles.
  3. Keep regular Chrome open.
  4. Start Codex Desktop and initialize Browser Use with setupAtlasRuntime.
  5. Call agent.browsers.list() and inspect browser.user.openTabs().
  6. Observe that only regular Chrome is exposed as an extension backend.
  7. Close regular Chrome while keeping SunBrowser profiles open.
  8. Reset/reinitialize the Browser Use runtime.
  9. Call agent.browsers.list() again.
  10. Observe that SunBrowser extension backends now appear, though they are still named Chrome.

Observed behavior

With regular Chrome open:

agent.browsers.list() =>
- Chrome (type: extension)    # regular Chrome tabs only
- Codex In-app Browser (type: iab)

After closing regular Chrome:

agent.browsers.list() =>
- Chrome (type: extension)    # SunBrowser profile A tabs
- Chrome (type: extension)    # SunBrowser profile B tabs
- Codex In-app Browser (type: iab)

Also, for the SunBrowser targets, browser.user.openTabs() could list existing user tabs, but browser.tabs.selected() returned No active tab found, and browser.tabs.get(<existing user tab id>) returned Existing tabs: none. Creating a new tab with browser.tabs.new() inside the SunBrowser target did work and produced a controllable tab.

Expected behavior

Codex Desktop should be able to discover and expose multiple connected Chrome-extension browser backends at the same time, or at least provide a deterministic way to select the desired backend/profile.

At minimum, regular Chrome being connected should not prevent other Chromium-like extension hosts from being listed or usable.

Environment

  • OS: Windows
  • App: Codex Desktop
  • Browser extension: Codex Chrome extension 1.1.4
  • Browsers involved:
  • Google Chrome
  • AdsPower SunBrowser, Chromium 142/145 based profiles
  • Native host process observed: extension-host.exe
  • Extension ID: hehggadaopoacecdllhhajmbjkdcmajg

Possibly related issues

This may be related to existing Browser Use / Chrome extension backend discovery issues such as:

  • #21672
  • #21691
  • #21719
  • #21765
  • #21876

I can provide more diagnostic output if useful, but I intentionally omitted local profile paths, account URLs, and sensitive tab URLs from this issue.

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 3 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #21672

Powered by Codex Action

sleepyy-dog · 3 months ago

Thanks for flagging #21672. I reviewed it and this issue looks related, but not an exact duplicate.

#21672 is about macOS socket discovery hanging when unrelated browser-use sockets exist. This report is on Windows with multiple Chrome-extension native hosts from regular Chrome and AdsPower SunBrowser profiles.

In this case, the SunBrowser Codex extensions are installed and their extension-host.exe processes are running. When regular Chrome is open, only the regular Chrome extension backend is exposed. After closing regular Chrome and reinitializing Browser Use, SunBrowser extension backends appear.

There is also an additional attach/control difference: browser.user.openTabs() can list existing SunBrowser tabs, but browser.tabs.selected() returns No active tab found and browser.tabs.get(<listed tab id>) returns Existing tabs: none; tabs created via browser.tabs.new() are controllable.

So I think this may share the same discovery/selection area as #21672, but it covers a distinct multi-Chromium/multi-native-host case on Windows.