Repository navigation
Chrome Browser Use remote navigation depends on ChatGPT auth and breaks in API-key/custom-provider mode #21710
Description
Summary
Chrome Browser Use appears to require a ChatGPT-authenticated site_status preflight before visiting remote URLs. When Codex Desktop is running in API-key/custom-provider mode, remote Browser Use navigation fails because the ChatGPT auth token is unavailable or invalid for that preflight, even when the Chrome extension and native host are installed correctly.
This report is intentionally sanitized. I am omitting account identifiers, token values, local usernames, custom provider hostnames, private domains, and any internal URLs.
Environment
- Codex Desktop:
0.129.0-alpha.15 - macOS:
15.7.4 - Browser backend: Google Chrome via Codex Chrome Extension
- Chrome:
147.0.7727.138 - Codex Chrome Extension: installed and enabled, version
1.1.4_0 - Chrome plugin bundle observed locally:
openai-bundled/chrome 0.1.7 - Model provider setup: OpenAI-compatible custom provider using the Responses API
- Model auth mode after restart:
ApiKey, observed in Codex logs asauth_mode="ApiKey"
What I expected
A user should be able to:
- Use API-key/custom-provider mode for model requests and billing/quota.
- Use the Chrome Browser Use extension for remote pages.
- Keep a separate ChatGPT login available for Browser Use safety/policy preflight if that preflight requires ChatGPT auth.
If this mixed mode is not supported, Codex should show a clear product-level error or documentation note saying that remote Chrome Browser Use requires ChatGPT login mode and is incompatible with API-key mode.
Actual behavior
The behavior seems to depend on the selected Codex auth mode:
- With ChatGPT login only,
https://chatgpt.com/backend-api/mesucceeds,https://chatgpt.com/backend-api/aura/site_status?...succeeds, and Chrome Browser Use can navigate tohttps://www.google.com/. - With API-key/custom-provider mode, the same
site_statuschain fails before the target site loads. Earlier repros returned401 Unauthorizedwith the body textCould not parse your authentication token. Please try signing in again.or surfaced asCodex auth token is unavailable/Browser Use cannot determine if ... is allowed. - In a hybrid local test where ChatGPT tokens and an API key were both present in the local auth file, after restarting Codex Desktop the app selected
auth_mode="ApiKey". Model requests used the API-key path, but Browser Use still did not have a working ChatGPT-authenticated preflight path.
Reproduction outline
- Install and enable the Codex Chrome Extension.
- Confirm Google Chrome is running.
- Confirm the native messaging host manifest exists and allows the Codex Chrome Extension origin.
- Configure Codex Desktop to use an OpenAI-compatible custom provider with an API key.
- Restart Codex Desktop.
- Confirm logs report
auth_mode="ApiKey"for model requests. - Try to use Chrome Browser Use to navigate to a remote HTTPS URL such as
https://www.google.com/. - Observe that navigation is blocked before the target page loads because the Browser Use allowance/preflight cannot authenticate to the ChatGPT
site_statusendpoint.
Diagnostics already checked
The following were verified locally and are not the failure point:
- Chrome is installed and running.
- The Codex Chrome Extension is installed and enabled.
- The Chrome Native Messaging Host manifest exists.
- The manifest host name matches the expected host.
- The manifest allows the expected Chrome extension origin.
- The target origin was explicitly allowed in Browser Use local config.
- No target-site-specific failure was observed; the failure occurs before the remote site loads.
One extra note: manually invoking the browser client from an untrusted shell/Node context fails with privileged native pipe bridge is not available; browser-client is not trusted. I do not treat that as the main product bug, but it made it harder to reproduce the full Chrome Browser Use flow outside the trusted Codex app/plugin runtime.
Why this matters
API-key/custom-provider mode is useful for model billing and quota management, while Browser Use appears to rely on ChatGPT account authentication for remote-page policy checks. Those two concerns should ideally be separable. At the moment, using API-key mode appears to make remote Chrome Browser Use unusable or ambiguous.
Suggested fix / clarification
Any of these would make the behavior much clearer:
- Support separate credentials: API key/custom provider for model requests, ChatGPT token for Browser Use
site_statusand related policy checks. - If separate credentials are unsupported, document that remote Chrome Browser Use requires ChatGPT login mode and cannot be used in API-key mode.
- Improve the error message so it says which credential is missing and which endpoint/preflight failed.
- If local Browser Use config explicitly allows an origin, clarify whether
site_statusis still required and why.
Activity
github-actions commentedon May 8, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
liuxuan1-1 commentedon Sep 10, 2026
Adding a Windows reproduction from September 10, 2026, with more recent versions and a specific authentication-status observation.
Environment
26.903.9818.00.153.4extensionbackend)requires_openai_auth = falseObserved behavior and reproduction
https://dotnet.microsoft.com/en-us/download/dotnet/10.0.extension, and creates a browser handle successfully.nameSession()call fails with:Retrying
nameSession()on the same handle produces the same error. This happens before page navigation or clicking. Browser discovery succeeding therefore does not establish that browser control is working.The same authentication error was also observed on Desktop
26.903.8094.0, with CLI0.153.4. Browser control had worked previously, but the exact last working version and introducing change have not been isolated.Authentication evidence
A separate status-only probe of CLI
0.153.4, using the configured custom provider, returned:{"authMethod": null, "requiresOpenaiAuth": false}The probe used
includeToken: falseandrefreshToken: false; it did not request or refresh a token or send model requests.The version-matched app-server implementation explicitly returns no authentication method or token when the active model provider has
requires_openai_auth = false.This suggests an interaction between browser authentication requirements and the active model provider's authentication status. The exact internal browser failure branch has not been proven with a complete live trace.
To distinguish this reproduction from the
site_statusdiscussion in #20614: no HTTP 403 or outboundsite_statusrequest was observed in these failed calls. This report does not attribute the failure to either of those.Expected behavior
Using a custom provider for model requests should not leave local Chrome control failing with an unexplained missing-token error. If browser operations require a separate OpenAI sign-in, the app should clearly expose that requirement and provide a supported way to satisfy it while keeping the custom model provider.
Could this authentication interaction be investigated for the current Windows browser runtime?
voarsh2 commentedon Sep 10, 2026
Also getting this issue......... :/
C-Y-T-258 commentedon Sep 11, 2026
看来大家都有这个问题
Tom9527c commentedon Sep 11, 2026
是否有解决方法,因为这个问题困扰了我两天了,是否可以通过降级的方法恢复使用?
ardaerturk commentedon Sep 12, 2026
Adding a Linux / Azure OpenAI-only reproduction verified on September 12, 2026, matching the missing-token behavior in the September 10 Windows reproduction. This adds a no-ChatGPT-account case, post-reinstall results, and a possible earlier failure point than
site_status.What version of the Codex App are you using (From “About Codex” dialog)?
26.908.40834(verified from the installed Linuxchatgptpackage, not the About dialog).codex-cli 0.154.0-alpha.6.2.26.908.40834, installed and enabled.151.0.7922.173.1.26.901.11451(hehggadaopoacecdllhhajmbjkdcmajg).What subscription do you have?
None. Model requests use Azure OpenAI via an environment-variable API key. There is no ChatGPT/OpenAI account login or subscription in this setup. The bundled CLI's
login statusreportsNot logged in; Azure model requests work.What platform is your computer?
Ubuntu 24.04.4 LTS.
uname -mprs:What issue are you seeing?
The desktop's browser API discovers the Chrome extension, but listing tabs or opening a harmless test page fails with:
Reinstalling the Chrome extension created a new discoverable extension instance, but did not change the error. Resetting the task's browser helper and retrying also failed. The failure is not just an inability to discover Chrome.
What steps can reproduce the bug?
Run the desktop app with an otherwise working Azure OpenAI Responses configuration and the Azure key available in its environment. Relevant configuration excerpt below; retain your working Azure deployment, base URL, and API-version settings:
Do not sign in to a separate ChatGPT/OpenAI account. Install and enable the official Chrome extension in the running Chrome profile.
Ask the desktop agent: “Use my regular Chrome through the extension to open https://example.com/ and read its heading.”
In the desktop's initialized
cua_replbrowser tool, the minimal calls demonstrating the split are:A separate attempt after resetting the helper also fails:
These calls were made through the desktop's provided tool, not by importing the browser runtime from an arbitrary shell process. The error occurs on tiny initial browser calls; this is not a context-window exhaustion report.
What is the expected behavior?
Regular Chrome extension control should have a supported path for an Azure-only session while preserving browser permissions and policy checks. If a separate ChatGPT sign-in is required by design, please explicitly document and surface that requirement instead of returning a generic missing-token error after successful discovery.
Additional information
Checks and controls:
26.908.40834. The store listing matches the installed extension version.dpkg --verify chatgptreports no packaged-file discrepancies. All 1,629 checked extension files match Chrome's local computed-hash manifest (not an independent signature verification).example.com, followed the IANA link, and navigated back.--autoConnectworked after the user explicitly enabled Chrome remote debugging and allowed the connection. Listing existing tabs and opening, reading, and closing a temporary test tab succeeded. This is an alternative connector, not a repair of the extension.Possible failure point — static inspection, not a complete network trace:
The installed
browser-service.mjscontains an extension-specific branch insendSessionRequestthat consultsreadRequestHeaderEnabled()before dispatching a session command. Its callback awaits caller identity before reading thecodex_browser_use_agent_request_headerfeature gate; identity initialization useshttps://chatgpt.com/backend-api/aura/identity.getInfois exempt from that branch, and the branch is extension-specific. This is consistent with successful discovery, failed extension commands, and successful in-app control. It does not establish an HTTPsite_statusfailure or prove that an identity request actually went out on the network.The community browser-helper-only
model_provider="openai"workaround in Vivswan/skills#101 exposes an existing ChatGPT sign-in; it does not supply one for an Azure-only user. A status-only check with an OpenAI provider override still reportedNot logged inhere. That workaround was not installed.No credentials, Azure resource names, private browsing URLs, local usernames, or raw session logs are included. No browser policy or authentication code was modified. Could maintainers confirm whether Azure-only extension control is intended to work and investigate this identity-dependent initialization path? Related API-key report #43410 has a different error (
unsupported Codex auth method: apikey), so I am not assuming the failures are identical.jeffery-zhang commentedon Sep 13, 2026
Adding a Windows follow-up after completing a fresh round of testing on September 13, 2026.
Symptoms
Chrome could be discovered through the extension, but reading or operating tabs failed with
nodeRepl.fetch request failed. Earlier attempts had also producedunauth/ authorization errors.What resolved it in my setup
I kept Codex/ChatGPT signed in and injected the following proxy environment variables for the CUA child process through the actual
cua-repl.mjslauncher:10808is my local HTTP proxy port; other users should use their own proxy's port. This lets the CUA process use the proxy for remote requests while keeping local addresses direct. I then tested in new sessions so the child process could pick up the variables.Verification
After a complete retest in fresh sessions in both Codex App and Codex CLI, CUA and Chrome browser control worked normally, and the earlier
unautherrors no longer occurred.This is a working local workaround for my authenticated, proxy-dependent Windows setup, rather than proof that every authentication-related failure in this issue has the same cause. Keeping the Codex/ChatGPT login was part of the working configuration; this does not establish support for a setup with no ChatGPT sign-in. Editing a bundled launcher is also update-sensitive, so a supported, persistent way to configure the CUA child process's proxy environment would be preferable (related: #42454).
going358 commentedon Oct 6, 2026
Adding a Windows repro where the #45060 workaround does not apply, because the custom provider uses command-based auth.
Environment
26.930.4958.0(MSIX), bundled CLI26.930.41038, Windows 11 x64model_provider = "<custom>"), authenticated via[model_providers.<custom>.auth]— a local command that decrypts and prints a static API keytype: "extension"codex login statusreportsLogged in using ChatGPT,auth.jsoncontains the full ChatGPT token set, and the desktop app was fully restarted afterwards (fresh process tree)Symptom (persists after login + full restart)
await cua.getState()discovers all backends, but the extension backends fail:Any tab operation on the Chrome/Edge extension backends fails with
Codex auth token is unavailable. The in-app browser (iab) backend works normally in the same session.Why the known workaround does not help
Adding
requires_openai_auth = true(the setting that resolves this for env_key-based providers, as discussed in #45060) to a provider that uses anauthcommand is rejected at config load:So there is currently no supported way to opt a command-auth custom provider into the ChatGPT identity path, even when the user is signed in to ChatGPT.
Verified locally (config validation only)
authcommand +requires_openai_auth = true→ rejected at config load (error above)env_key+requires_openai_auth = true→ acceptedExpectation
Since the user has a valid, freshly refreshed ChatGPT login, Browser Use should be usable in custom-provider mode; or
requires_openai_authshould be combinable with command-based provider auth — or another opt-in mechanism should exist.going358 commentedon Oct 6, 2026
Update from an affected user — resolved (with caveats) on the exact setup described above.
Setup: Windows 11, Codex Desktop
26.930.4958.0, custom Responses-compatible provider with command-based auth ([model_providers.<name>.auth]), Chrome + Edge extension backends, ChatGPT login active.What made Browser Use work end-to-end:
Authentication leg ("Codex auth token is unavailable"):
env_key(moved the static API key to a user-level env var), then addedrequires_openai_auth = true.requires_openai_authcannot be combined with command-based provider auth (config load fails withprovider auth cannot be combined with requires_openai_auth), so converting toenv_keywas required in our case.Network leg ("nodeRepl.fetch request failed", contributed by a local network that requires a proxy for some domains):
node_replwent directly to polluted/unreachable IPs (SYN_SENT to unrelated prefixes) because the process had no proxy environment.HTTPS_PROXY/HTTP_PROXY(+ lowercase variants,NO_PROXY=localhost,127.0.0.1,::1) into the CUA child process by patching the@oai/cua-repllauncher (bin/cua-repl.mjs) inside the cua_node runtime — the same injection point as the workaround described earlier in this thread.mcp_servers.node_repl.envinconfig.tomldoes not survive — the app rewrites that section on startup. Patching the bundled launcher is update-sensitive (a runtime update will drop the patch), as already flagged earlier in the thread.Result:
cua.getState()returns clean, and Chrome/Edge extension tabs can be listed and opened successfully.Hope this helps anyone hitting the same combination.
huqianghui commentedon Oct 13, 2026
Adding a macOS follow-up with a working configuration, tested on October 13, 2026.
Account and model provider
Previous behavior
The browser runtime could initialize and discover Chrome, but subsequent operations failed with:
The error occurred on initial browser operations, including
nameSession(), before target-page navigation.Current verification
After changing my setup and restarting Codex Desktop, I tested Chrome Browser Use again.
The following operations succeeded through the official Chrome Browser Use runtime:
No alternative browser automation mechanism was used for this verification.
Scope of this result
This demonstrates a working configuration with an OpenAI/ChatGPT account signed in and Azure OpenAI still displayed as the model provider.
I have not isolated the exact configuration change responsible for the recovery. I also have not captured a network trace of the ChatGPT identity or
site_statuschecks, or independently verified the model request destination during this browser test.Could maintainers clarify the supported configuration for keeping ChatGPT account authentication available to Browser Use while using Azure OpenAI for model requests, including whether
requires_openai_auth = trueis required for this mixed setup?longhaichen commentedon Oct 16, 2026
Adding another Windows reproduction, retested on October 16, 2026.
Environment
26.1007.2314.00.162.0-alpha.17.2Observed behavior
Codex auth token is unavailable.Computer Use has been stopped for this turn because it could not determine the current browser URL on Windows with enough confidence to enforce policy.This looks like the model-provider authentication path and Browser Use identity/policy path are still coupled, or the extension/native runtime loses reliable URL attestation in this mixed configuration.
Expected behavior
Browser Use should keep and use the ChatGPT account authentication/policy context independently from the custom provider used for model requests. If that configuration is intentionally unsupported, the app should state that clearly and surface a specific actionable error instead of disabling Computer Use after browser discovery.
ardaerturk commentedon Oct 17, 2026
seems to be resolved in 26.1013.40934