Browser Use extension backend is hidden/ambiguous when Chrome and AdsPower SunBrowser are both connected
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. nativeMessagingpermission was present.disable_reasonswas empty.- Each SunBrowser process had launched
extension-host.exeforchrome-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
- Install the Codex Chrome extension in regular Google Chrome.
- Install the same Codex extension in multiple AdsPower SunBrowser profiles.
- Keep regular Chrome open.
- Start Codex Desktop and initialize Browser Use with
setupAtlasRuntime. - Call
agent.browsers.list()and inspectbrowser.user.openTabs(). - Observe that only regular Chrome is exposed as an extension backend.
- Close regular Chrome while keeping SunBrowser profiles open.
- Reset/reinitialize the Browser Use runtime.
- Call
agent.browsers.list()again. - 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.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗