Skip to content

Windows: Edge tab discovery fails with "Unable to load browser request-header policy" #44169

Open

Description

@LogiQQ

Summary

In Codex Desktop on Windows, a read-only request to connect to Microsoft Edge and list its existing tabs fails before browser discovery completes. Two consecutive calls returned the same error:

Unable to load browser request-header policy. Retry the browser command.

This report was prepared and submitted by Codex at the user's request, based on tool outputs observed in this conversation on 2026-09-09.

Environment

  • Codex Desktop on Windows.
  • Requested browser: Microsoft Edge.
  • Tool: mcp__cua_repl.js, using cua.getState().
  • Exact Codex Desktop and Edge versions: not verified. A read-only Get-AppxPackage -Name OpenAI.Codex query returned no rows in the execution context, so no app version is inferred from it.

Steps to reproduce

  1. In Codex Desktop, request: “Please connect to my Edge and only list the tabs, read-only.”
  2. Invoke the browser inventory entry point:
    await cua.getState();
  3. Observe the error below.
  4. Retry the same command, as suggested by the error. In this session, the retry failed identically.

Actual behavior

Both calls returned:

{
  "apps": [],
  "browsers": [],
  "errors": [
    "Browsers: Error: Unable to load browser request-header policy. Retry the browser command."
  ]
}

The calls took approximately 21.7 seconds and 20.0 seconds respectively. The error stack originated in the CUA runtime's temporary kernel.js and worker-runtime.js files. User-specific filesystem paths are omitted.

No tab titles or URLs were obtained. The empty arrays are accompanied by an inventory failure and should not be interpreted as proof that no browsers or tabs were open. No tabs were opened, closed, navigated, or modified by these calls.

Expected behavior

The authorized read-only discovery request should enumerate available browsers and existing Edge tabs. If a prerequisite policy cannot be loaded, the error should identify an actionable cause rather than repeatedly suggesting a retry that returns the same result.

Scope and related reports

These are related symptoms only, not confirmed duplicates or evidence of a shared root cause.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    windows-osIssues related to Codex on Windows systems
    tool-callsIssues related to tool calling
    on Sep 9, 2026
  2. LogiQQ commented on Sep 9, 2026

    @LogiQQ
    Author

    Follow-up: same failure after a reported restart

    On 2026-09-09, the user reported restarting and requested another read-only check. The exact restart scope (Codex, Edge, or the entire OS) was not specified, so this is not claimed as a verified full reboot.

    The subsequent mcp__cua_repl.js call:

    await cua.getState();

    failed again after approximately 21.7 seconds with the same result:

    {
      "apps": [],
      "browsers": [],
      "errors": [
        "Browsers: Error: Unable to load browser request-header policy. Retry the browser command."
      ]
    }

    This is the third observed failure in this conversation: two before the reported restart and one afterward. No browser tabs or settings were modified during the checks.

    Related reports identified by the duplicate-detection bot

    I reviewed #44140 and #44112. Both contain the exact same error text. #44140 is particularly close: Windows, Edge/Chrome failure, approximately 20–21 seconds before failure, and persistence after restarting Codex.

    The Statsig initialization findings and successful in-app-browser comparison in #44140 are evidence from that reporter's machine, not independently verified findings on mine. I have not tested the in-app browser on this machine and cannot confirm a shared underlying cause or a working workaround.

    Please consider these reports together during triage. This comment adds the post-restart reproduction evidence without claiming a confirmed root cause or fix.

  3. qpwlkq commented on Sep 11, 2026

    @qpwlkq

    I reproduced the same failure on macOS with Chrome, and traced it one layer deeper. This appears to be a cross-platform Browser Use policy-loading failure rather than an Edge/native-host problem.

    Environment

    • macOS 26.2 (25C56), arm64
    • ChatGPT/Codex desktop app 26.903.71938 (build 8576)
    • Google Chrome 152.0.7977.83
    • ChatGPT Chrome extension 1.26.901.11451
    • Computer Use tool: mcp__cua_repl.js

    Reproduction

    cua.getState() and cua.createBrowserTab("chrome", ...) repeatedly failed with:

    Unable to load browser request-header policy. Retry the browser command.
    

    Resetting the CUA REPL session did not recover it. In the same app session, one earlier retry briefly succeeded, so the failure is capable of being transient, but subsequent calls failed repeatedly.

    Native diagnostics all pass:

    • Chrome is running.
    • The ChatGPT extension is installed and enabled in the selected Chrome profile.
    • The native messaging host manifest exists, has the expected host name and origins, and is reported as correct.
    • Native macOS accessibility control can operate the same Chrome instance successfully.

    Root-cause evidence

    The shipped Browser plugin's bundled browser-service.mjs initializes a Statsig client against https://ab.chatgpt.com/v1 and reads the gate codex_browser_use_agent_request_header before extension-backed session requests.

    The visible error is thrown when Statsig does not reach Ready. A preserved tool result exposes the underlying error that gets wrapped:

    Timed out waiting for Statsig values.
    

    The relevant flow is:

    1. Browser service startup launches Statsig initialization and caller-identity loading without awaiting the combined operation.
    2. The extension transport receives a readRequestHeaderEnabled callback.
    3. Before an extension-backed session request, that callback waits for caller identity and the Statsig gate.
    4. The wait has a 10-second timeout. If the remote config is unavailable or delayed, Browser Use throws before contacting the extension.

    There is also an asymmetry in sendSessionRequest: getInfo is exempt from the request-header gate, while getUserTabs is not, even though both are treated as discovery calls elsewhere in the same method. This explains why browser metadata may be available while tab discovery fails.

  4. gongzhang commented on Sep 11, 2026

    @gongzhang

    Same here. #44112 (comment)

  5. GuraGeino commented on Sep 12, 2026

    @GuraGeino

    I can reproduce this exact external-browser discovery failure on Windows in a later ChatGPT/Codex desktop release: 26.908.40834.

    On 2026-09-13, after restarting the desktop app and reopening Microsoft Edge, a read-only browser inventory still failed before any browser, tab title, URL, or page content could be obtained.

    The returned state was:

    {
      "apps": [],
      "browsers": [],
      "errors": [
        "Browsers: Error: Unable to load browser request-header policy. Retry the browser command."
      ]
    }

    A retry returned the same result. The external-browser integration had previously appeared enabled in the desktop app. The failure therefore occurs before normal external-browser discovery, rather than during target-site authentication or page interaction.

    The empty browser list should not be interpreted as evidence that an external browser was not running; browser discovery itself failed.

    I can provide sanitized timing and runtime details if they would help investigate the request-header-policy initialization path.

  6. GuraGeino commented on Sep 13, 2026

    @GuraGeino

    Additional evidence from the same Windows/Codex Desktop environment:

    After the original Edge discovery failure, I tested Codex’s built-in browser path as well. Browser inventory still fails before any browser or tab is discovered, with the same error:

    Unable to load browser request-header policy. Retry the browser command.

    This currently affects both external Edge control and Codex’s built-in iab browser path.

    The Edge browser-family toggle had become disabled in the local Codex configuration. Re-enabling it did not change the failure.

    The error occurs before any website is opened, tab is read, or browser interaction is attempted. This points to the shared browser-policy/runtime layer rather than the target site, Edge profile, or browser extension state.

    Windows recorded a ChatGPT/Codex application hang on the same morning. This is only a timing correlation, not a claimed root cause.

  7. zhaosh-eng commented on Sep 21, 2026

    @zhaosh-eng

    Additional Windows / Edge reproduction — 2026-09-21

    Submitted by Codex at the user's explicit request.

    Verified environment

    • Codex desktop Windows package: OpenAI.Codex 26.915.3509.0, verified with Get-AppxPackage.
    • Windows version reported by the runtime: 10.0.26200.0.
    • External browser: Microsoft Edge. Exact browser and extension versions were not verified.
    • Installed browser/computer-use bundle inspected locally: 26.915.31029.

    Observed behavior

    cua.listBrowsers() successfully returned Edge metadata, but cua.listTabs(...), cua.getTab({url: ...}, {browser: ...}), and cua.getState() repeatedly failed before page content could be inspected:

    Unable to load browser request-header policy. Retry the browser command.
    

    cua.getState() returned empty app/browser arrays together with the above discovery error; those arrays do not establish that Edge was closed.

    Recovery attempts and results

    • Retried the browser commands multiple times: unchanged.
    • The user reported restarting the desktop app; subsequent calls still failed. One call hit a 30-second execution timeout and reset its kernel, and a fresh inventory call then returned the policy error after about 22.9 seconds.
    • The user reported changing the network/proxy route. After that, we explicitly reset the CUA JavaScript kernel and retried: the first bind failed after about 22.9 seconds, and the next bind failed after about 10.0 seconds with the same error.
    • Earlier supported native Windows Computer Use inspection could enumerate the Edge window, but attempting to inspect that window stopped with a separate error saying it could not determine the current browser URL confidently enough to enforce policy. The tool was stopped as instructed; this is not claimed to share a confirmed cause.

    Diagnostic boundaries

    Read-only inspection of the shipped browser service found that the policy error is raised when remote Statsig initialization is unsuccessful or the client is not Ready. This identifies the failing code path, not the underlying network/service cause.

    A plain HEAD probe to https://ab.chatgpt.com/v1/ returned HTTP 403 both through curl's default route and an explicitly configured local system proxy. This was not the actual SDK initialization request, so it does not establish that the real initialization endpoint is blocked.

    No policy checks, certificate checks, or access controls were disabled or bypassed. Private target URLs, document contents, roster data, credentials, account identifiers, and raw session logs are omitted.

    Impact / request

    An authorized cloud-document workflow remains completely blocked before browser page inspection. Please investigate the persistent policy initialization failure and expose the underlying cause or an actionable recovery path instead of repeatedly suggesting a retry.

  8. IT-EXPRESS-Bayern commented on Oct 7, 2026

    @IT-EXPRESS-Bayern

    Additional reproduction on 7 October 2026, submitted at the user's request.

    Verified local versions:

    • Codex desktop MSIX package: 26.930.7945.0
    • Microsoft Edge: 154.0.4258.53
    • Windows OS version reported by the local runtime: 10.0.26300.0
    • Computer Use skill bundle observed: 26.930.61225

    The Edge browser-extension path failed with:

    Unable to load browser request-header policy. Retry the browser command.
    

    Observed calls:

    1. cua.getState() returned Edge browser metadata, an empty tab list and a browser-specific policy-loading error. The empty list does not establish that no tabs were open.
    2. cua.getBrowser({ id: returnedBrowserId }) returned the Edge binding and documentation.
    3. browser.user.openTabs() failed with the same error.
    4. cua.createBrowserTab("edge", userProvidedUrl, { sessionName: "..." }) failed with the same error.

    The requested new tab/window was not confirmed as opened. Retrying in a later turn did not resolve the issue. App/browser restarts and reinstallations were not performed during this reproduction.

    The native Windows Computer Use path also failed before capturing the Edge window state, with the URL-confidence safety stop reported in #51524. Whether these two failures share a cause is unknown.

    Please investigate policy initialization and provide a supported recovery path. No safety controls were disabled. Account data, target-page URLs, local usernames, session identifiers and full conversation logs are omitted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbrowserbugSomething isn't workingcomputer-usetool-callsIssues related to tool callingwindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions