Skip to content

[Windows] Browser plugin fails with "browser-client is not trusted" despite advertised chrome and iab backends #21781

Open

Description

@mickitty0511

What version of the Codex App are you using (From “About Codex” dialog)?

26.506.2212.0

What subscription do you have?

Pro

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64

What issue are you seeing?

The Codex Desktop Browser / browser-use plugin fails with:

privileged native pipe bridge is not available; browser-client is not trusted
This happens even though the Node REPL request metadata advertises both chrome and iab as available browser backends.

The issue appears to be with the Browser plugin runtime or Node REPL trusted native pipe injection, not with the local web app being tested. Direct Playwright automation against the same localhost URL works.

Diagnostics observed from Node REPL:

{
  "hasNativePipe": false,
  "requestMeta": {
    "x-codex-browser-use-available-backends": [
      "chrome",
      "iab"
    ]
  }
}
Additional observations:

x-codex-browser-use-available-backends includes chrome and iab
import.meta.__codexNativePipe is not available
\\.\pipe\codex-browser-use-* pipes exist
~/.codex/config.toml has the Browser plugin enabled
The local app is reachable over HTTP
Direct Playwright Chromium automation against the same URL succeeds

### What steps can reproduce the bug?

Uploaded thread: daff1fa5-966b-436a-8791-682411321073
*To Codex dev teams, reference this id. You have my submitted logs.

Start Codex Desktop on Windows.
Use the bundled Browser plugin:
browser-use@openai-bundled
observed path: ~/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha2/
In the Node REPL, run:
const { setupAtlasRuntime } = await import(
  "file:///C:/Users/ms-ef/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha2/scripts/browser-client.mjs"
);

await setupAtlasRuntime({ globals: globalThis });
const browser = await agent.browsers.get("chrome");
Repeat with iab:
const browser = await agent.browsers.get("iab");
Both fail with the same trust/native pipe error.

### What is the expected behavior?

What is the expected behavior?
If chrome or iab is advertised as an available backend, Browser plugin setup should succeed:

await setupAtlasRuntime({ globals: globalThis });
const browser = await agent.browsers.get("chrome");
// or
const browser = await agent.browsers.get("iab");
After setup, browser navigation, DOM snapshots, screenshots, clicks, and reloads should work.

### Additional information

Workaround: direct Playwright execution works against the same target.

npx -y playwright install chromium
npx -y playwright screenshot --browser chromium "http://127.0.0.1:59832/?sample=web-edited-sales&v=type-old-new-layout" tmp/page.png
A temporary Node runner with the playwright package also works for multi-step UI checks.

Suspected cause: the browser backends are detected, but the current Node REPL runtime is not receiving the trusted native pipe bridge. This looks like a Codex Desktop / Browser plugin runtime initialization issue, or a failure to inject import.meta.__codexNativePipe into the Node REPL environment.

Activity

  1. added
    appIssues related to the Codex desktop app
    on May 8, 2026
  2. rodrigoantonioli commented on May 12, 2026

    @rodrigoantonioli

    Additional data point from Windows:

    Importing browser-client.mjs from the plugin cache path produced:

    privileged native pipe bridge is not available; browser-client is not trusted

    But importing it from the bundled marketplace source path worked:

    C:\Users\rodri.codex.tmp\bundled-marketplaces\openai-bundled\plugins\chrome\scripts\browser-client.mjs

    After that, agent.browsers.list() returned both:

    • Chrome, type extension
    • Codex In-app Browser, type iab

    The Chrome extension backend then successfully opened https://example.com/ and read the title "Example Domain".

    So at least in this case, the trust error was path-sensitive: cache path failed, bundled marketplace path succeeded.

  3. ceoaliongroo commented on May 18, 2026

    @ceoaliongroo

    I’m seeing the same issue on Windows with the Codex Desktop Chrome plugin.

    Error:

    privileged native pipe bridge is not available; browser-client is not trusted
    

    Local diagnostics:

    OS: Windows
    Chrome: running
    Codex Chrome Extension: installed and enabled
    Extension ID: hehggadaopoacecdllhhajmbjkdcmajg
    Detected Chrome profile: Profile 13
    Native host manifest: exists and is correct
    Registry native host path: matches manifest path
    allowedOrigins includes: chrome-extension://hehggadaopoacecdllhhajmbjkdcmajg/
    Node REPL request metadata advertises browser backends: ["chrome", "iab"]
    

    Commands/checks used from the bundled Chrome plugin all pass:

    scripts/chrome-is-running.js --json
    scripts/check-extension-installed.js --json
    scripts/check-native-host-manifest.js --json
    

    Tried recovery steps:

    - Restarted Chrome
    - Reinstalled the Codex Chrome extension
    - Restarted Codex
    - Opened a fresh Chrome window using the detected profile
    - Reset the Node REPL kernel and retried setupAtlasRuntime
    - Tried both bundled chrome and browser-use browser-client paths
    

    Expected:

    const { setupAtlasRuntime } = await import("file:///C:/Users/<user>/.codex/plugins/cache/openai-bundled/chrome/0.1.7/scripts/browser-client.mjs");
    await setupAtlasRuntime({ globals: globalThis });
    globalThis.browser = await agent.browsers.get("extension");
    await browser.user.openTabs();

    Actual:

    privileged native pipe bridge is not available; browser-client is not trusted
    

    This looks like the Desktop runtime is not injecting/exposing the trusted native pipe bridge to the Node REPL despite the Chrome extension and native host installation checks passing.

  4. Denzarva commented on May 20, 2026

    @Denzarva

    I can reproduce the same trusted bridge failure on a newer Codex Windows build.

    Environment:

    • Codex Windows package: OpenAI.Codex_26.513.4821.0
    • codex-cli 0.132.0
    • Windows, x64
    • Chrome extension installed/enabled in Profile 3
    • Chrome extension popup shows Connected
    • Chrome extension version: 1.1.4_0
    • Native host manifest and registry checks pass:
      • manifest exists
      • host name matches
      • expected extension origin is present
      • registry path matches manifest path

    Failure:

    Both Browser/IAB and Chrome extension direct bridge fail before any page interaction with:

    privileged native pipe bridge is not available; browser-client is not trusted
    

    What I tested:

    • Browser/IAB via cache path:
      %USERPROFILE%\.codex\plugins\cache\openai-bundled\browser\0.1.0-alpha2\scripts\browser-client.mjs
    • Chrome via cache path:
      %USERPROFILE%\.codex\plugins\cache\openai-bundled\chrome\0.1.7\scripts\browser-client.mjs
    • Browser/IAB via bundled marketplace path:
      %USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundled\plugins\browser\scripts\browser-client.mjs
    • Chrome via bundled marketplace path:
      %USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundled\plugins\chrome\scripts\browser-client.mjs

    The cache and bundled marketplace browser-client.mjs files currently have the same SHA256 hash on this machine.

    Both bundled marketplace clients export setupBrowserRuntime. In the active JS turn, request metadata contains:

    threadId
    x-codex-browser-use-available-backends
    x-codex-turn-metadata
    

    x-codex-browser-use-available-backends contains:

    ["chrome", "iab"]

    x-codex-turn-metadata is present and includes keys such as:

    session_id
    thread_id
    turn_id
    model
    reasoning_effort
    sandbox
    turn_started_at_unix_ms
    

    But the JS runtime still has:

    globalThis.__codexNativePipe === undefined
    

    Latest Desktop logs show:

    browser_use_availability_resolved available=true
    browser-use native pipe listening
    

    Latest logs do not show:

    bundled_executable_relocation_failed
    Windows Computer Use helper paths are unavailable
    expected active turn id
    

    Fresh local Codex Desktop thread tests:

    • @Browser open https://example.com and read the page title reproduced the trusted native-pipe failure, then only succeeded through the Playwright MCP fallback.
    • @Chrome list my open tabs did not expose the real Chrome-backed tab API and only saw an isolated Playwright tab (about:blank), not the user's real Chrome profile tabs.

    The user also retried the Browser/Chrome plugin repair/re-add flow and restarted Codex, but the direct bridge still did not recover.

    Workaround:

    Playwright MCP still works for browser automation. The failure appears specific to Codex Desktop trusted native-pipe / browser-client trust injection for the direct Browser/Chrome bridge.

  5. AmoebaChaos commented on May 21, 2026

    @AmoebaChaos

    I am seeing the same issue on Windows Codex App.

    Error:
    privileged native pipe bridge is not available; browser-client is not trusted

    In my environment, Chrome is running, the Codex Chrome Extension is installed and enabled, and the native host manifest appears to be correct, but Codex still cannot control Chrome/Gmail through the Chrome plugin.

    This blocks browser automation for Gmail. I would appreciate a fix or an official workaround.

  6. Stef9332 commented on May 22, 2026

    @Stef9332

    Adding a related Windows datapoint that may help narrow this down.

    On Codex Desktop for Windows, I can reproduce a browser/native-pipe failure mode that changes depending on the filesystem sandbox setting.

    Observed behavior:

    • With sandboxing enabled, Chrome/browser automation fails from the browser client path with:
    privileged native pipe bridge is not available; browser-client is not trusted
    
    • After disabling the sandbox and restarting Codex Desktop, the Chrome extension backend becomes visible and usable through the bundled browser client. agent.browsers.list() shows a Chrome backend with type: "extension", and navigation to https://x.com/ works in the logged-in Chrome profile.

    • Re-enabling sandboxing causes the Chrome/browser path to fail again with the trusted native pipe / browser-client error.

    This makes the issue look less like a Chrome extension install problem and more like the Windows sandbox is blocking or preventing the trusted native pipe bridge / browser-client trust path from being injected or accessed correctly.

    Environment details:

    • Platform: Windows
    • Codex Desktop Windows app
    • Chrome extension backend present and working when sandbox is off
    • Failure mode appears before page-specific navigation, during browser client / backend setup

    I do not have a minimal code fix, but the sandbox on/off comparison seems like a useful signal: the same Chrome profile and extension setup works when the sandbox is disabled, and fails when sandboxing is enabled.

  7. dingjianhui123-create commented on May 31, 2026

    @dingjianhui123-create

    Additional Windows recovery datapoint from another affected machine. This is not an official fix, but it may help narrow down the failure mode.

    Environment:

    • Windows x64
    • Codex App 26.527.3686.0
    • codex-cli 0.135.0-alpha.1
    • bundled browser, chrome, and computer-use plugins at 26.527.31326

    Symptoms observed:

    • browser-client is not trusted
    • privileged native pipe bridge is not available
    • Computer Use also failed with native pipe unavailable/path unavailable errors
    • codex plugin list --marketplace openai-bundled could show plugins as enabled, while runtime bootstrap still failed
    • after a restart, Browser/Chrome regressed to not installed because local plugin cache directories/manifests were missing

    What recovered this machine:

    1. Closed Codex/Chrome where possible before cache repair, because live Node/Codex/plugin smoke-test processes can lock native files under the plugin cache.
    2. Restored missing browser, chrome, and computer-use plugin cache directories/manifests from the bundled marketplace source. Avoided overwriting already-loaded native files while Codex was running.
    3. Ensured these plugin blocks existed and stayed enabled:
    [plugins."browser@openai-bundled"]
    enabled = true
    
    [plugins."chrome@openai-bundled"]
    enabled = true
    
    [plugins."computer-use@openai-bundled"]
    enabled = true
    1. Added runtime env values to the local node_repl MCP server:
    [mcp_servers.node_repl.env]
    NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S = "<sha256 values for the installed bundled browser/chrome/computer-use client scripts>"
    SKY_CUA_NATIVE_PIPE_DIRECTORY = "\\\\.\\pipe\\codex-computer-use-<current-session-id>"

    The important part was not hard-coding someone else's values. The SHA-256 list was computed from the installed plugin client files on that machine, and the Computer Use pipe was discovered from the current live \\.\pipe\codex-computer-use-* pipe.

    1. Because the Computer Use pipe changes after Codex restarts, I added a local Windows scheduled-task watchdog that runs once per minute and only writes when needed. It:
    • restores missing bundled plugin cache/manifests if absent
    • recomputes trusted client SHA-256 values from installed plugin files
    • refreshes SKY_CUA_NATIVE_PIPE_DIRECTORY to the current live pipe
    • keeps the three bundled plugins enabled
    • creates a timestamped backup before changing config.toml
    • uses a mutex to avoid concurrent writes

    Verification after repair:

    • config.toml parsed successfully
    • codex mcp get node_repl showed the expected env entries
    • codex plugin list --marketplace openai-bundled showed Browser, Chrome, and Computer Use as installed, enabled
    • Browser smoke test succeeded with both Chrome and Codex In-app Browser listed
    • Chrome smoke test succeeded when using the dynamic browser id returned by agent.browsers.list()
    • Computer Use smoke test succeeded with sky.list_apps() and sky.list_windows()

    My interpretation:

    • For a simple marketplace/cache mismatch, the "fully close Chrome and Codex, start Codex first, wait for plugin refresh, then reopen Chrome" recovery is safer and should be tried first.
    • In this case that was not enough, because plugin cache/manifests, trusted client hashes, and a session-specific Computer Use pipe all had to be kept in sync.
    • The ideal official fix would make this unnecessary by ensuring bundled plugin cache regeneration, trusted browser-client injection, and native-pipe discovery are handled atomically by Codex Desktop instead of relying on user-maintained config.toml repair scripts.

    Sanitized write-up of the local repair is here:

    https://gist.github.com/dingjianhui123-create/9c3c2b83c2a45c2ef32f9991e712edba

  8. zejiangPG commented on Jul 14, 2026

    @zejiangPG

    Windows Codex Desktop datapoint, likely related but with an earlier bootstrap failure:

    • Bundled Browser plugin version: 26.707.71524
    • codex-cli --version: 0.27.0
    • An in-app browser tab is present and can be navigated manually.
    • Importing the bundled browser-client.mjs from the Node REPL fails before backend discovery with:
    Cannot redefine property: process
    

    The plugin begins by assigning a processShim to globalThis.process and globalThis.global.process. In this Desktop Node REPL environment, that assignment is rejected. As a result, setupBrowserRuntime() never completes and neither IAB nor Chrome control can be attempted.

    Tried: fully exiting Codex, rebooting Windows, reopening the in-app browser, and retrying. The error is unchanged.

    This appears related to the trusted browser/native-pipe runtime injection issues in this thread, but differs from the later browser-client is not trusted error because it fails immediately at the process shim initialization. No browser account, cookies, or site-specific data are involved.

  9. zemeng5208 commented on Aug 14, 2026

    @zemeng5208

    I maintain WinBridge Recovery, an independent Windows Codex Desktop local-state diagnostic/recovery tool: https://github.com/zemeng5208/winbridge-recovery

    This thread is relevant because the failure is path-sensitive: the same browser client can fail from the managed plugin cache with browser-client is not trusted while succeeding from the bundled marketplace source. That is exactly the kind of split state WinBridge checks before attempting any repair — Store AppX bundled source, managed bundled marketplace, versioned plugin cache/latest, node_repl runtime, and Chrome Native Host state are validated together instead of assuming the cache copy is authoritative.

    For cases where the official bundled source is present and valid but the user-owned cache/runtime pointers have drifted, WinBridge can back up the current state, stage a verified replacement from the installed official package, hash-check it, and switch the local state with rollback data. It does not patch WindowsApps or bypass the trusted native-pipe model; if all local layers validate and a fresh task still lacks the privileged bridge, that remaining failure should be treated as upstream Desktop provisioning.

    If anyone here tries it on this exact browser-client is not trusted failure, please report the outcome even if it works. I created a short feedback thread specifically for real field results: zemeng5208/winbridge-recovery#4 — ✅ worked / 🟡 partial / ❌ no change are all useful.

  10. ErdoesiT commented on Aug 18, 2026

    @ErdoesiT

    Reproduced on Windows with Codex/Browser plugin build 26.814.41407.

    The in-app browser opens the target page normally, but agent control fails before browser discovery with:

    Trusted RPC dependency must resolve within a configured trusted code path:
    file:///C:/Users/<redacted>/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
    

    The service file exists and the trusted paths are present in the generated configuration, but the live runtime receives an empty environment, so the trusted roots are unavailable to the service loader. Reinstalling the Browser plugin and fully restarting the desktop application and worker processes did not resolve it.

    This appears consistent with the missing runtime environment reported in #28752, now reproducing in the current Windows desktop build through the trusted RPC dependency check.

  11. shiina-kaze commented on Aug 18, 2026

    @shiina-kaze

    Additional Windows reproduction on a newer Codex build.

    Environment:

    • Codex Windows app package: 26.814.5167.0
    • Codex runtime / bundled Browser, Chrome, and Computer Use plugins: 26.814.41407
    • Chrome extension: 1.2.27259.19709
    • Google Chrome stable on Windows x64

    Regression timeline:

    • Chrome control worked earlier the same day.
    • It stopped working immediately after updating Codex to the versions above.

    Current bootstrap error:

    Trusted RPC dependency must resolve within a configured trusted code path:
    file:///C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
    

    The Chrome skill imports:

    C:/Users/<user>/.codex/plugins/cache/openai-bundled/chrome/26.814.41407/scripts/browser-client.mjs
    

    Verified healthy:

    • Chrome is running.
    • ChatGPT Chrome extension is installed, registered, and enabled.
    • Native messaging host manifest exists and is correct.
    • HKCU native messaging registry entry matches the manifest.
    • Expected extension origins are present.
    • Computer Use works and can read Windows application state.
    • Browser and Chrome plugin bundle versions match.

    Recovery attempts that did not fix it:

    • Reinstalled Browser/Chrome plugins.
    • Restarted Codex and Chrome.
    • Rebuilt bundled marketplace/plugin caches.
    • Removed stale generated Node REPL/trusted-browser hash configuration and allowed Codex to regenerate its runtime configuration.

    After regeneration, the failure remains specifically at the trusted RPC service dependency check for browser-service.mjs.

    This appears to be a 26.814 regression in cross-plugin trusted-service resolution: the Chrome client starts from the chrome plugin root but its registered RPC service resolves from the browser plugin root and is rejected before any Chrome connection attempt.

  12. adamczhang commented on Aug 18, 2026

    @adamczhang

    Current-build datapoint that appears to be the newer manifestation of this shared IAB/Chrome trust-runtime problem:

    • Codex Windows package path version: 26.814.5167.0
    • Browser and Chrome plugins: 26.814.41407
    • Trusted project workspace on C:
    • In-app browser UI is open and renders a Yahoo page normally
    • Both explicit iab and chrome initialization fail before backend/tab discovery

    Current error:

    Trusted RPC dependency must resolve within a configured trusted code path: file:///C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
    

    The referenced service file exists. Chrome and IAB both resolve through the same rejected Browser service, so this is upstream of the Chrome extension handshake and independent of the loaded website. This supports the thread's broader diagnosis of a shared trusted-runtime/native-bridge provisioning failure, now expressed as a trusted RPC dependency rejection in build 26.814.

  13. Rayi0406TW commented on Aug 19, 2026

    @Rayi0406TW

    Additional Windows data point from Codex App 26.814.5167.0 / CLI 0.148.0-alpha.15 on Windows 11 Pro 10.0.26200 x64 (zh-TW). The in-app Browser worked before the 2026-08-18 app update and has failed consistently since the update.

    The current exact bootstrap error is:

    Trusted RPC dependency must resolve within a configured trusted code path: file:///%USERPROFILE%/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
    

    This occurs before browser discovery or access to any tab/site.

    codex plugin list --json reports browser@openai-bundled 26.814.41407 as installed=true and enabled=true. The trust evidence is deterministic:

    configured NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S
    8e172ec9f458f2e636fc69a1b8c68c217f6bb8d10c41f70a05a0878b73863701
    
    cached browser-client.mjs SHA-256
    3B9D8DCC6DC968887E8A969C63DAE6380E3C1C59FF5C474EB32DF08C353DAD87
    
    bundled-marketplace browser-client.mjs SHA-256
    3B9D8DCC6DC968887E8A969C63DAE6380E3C1C59FF5C474EB32DF08C353DAD87
    
    cached browser-service.mjs SHA-256
    B6FD7F485FDF59CC4A25445479545B24972F6226C79C72AB7BD985D86F069615
    

    The two shipped client files match each other, but neither matches the configured trust value. The trusted-services mapping points to the same cached browser-service.mjs path that the runtime rejects. This looks like stale or mixed trust metadata after update, although I cannot determine the internal root cause from the public runtime surface.

    Already attempted without success:

    • Codex restart.
    • Windows App Repair and restart.
    • Official Browser plugin remove/reinstall and restart.
    • Verified uninstall removed the cache and reinstall recreated it.
    • Tested both cached and bundled-marketplace plugin sources.
    • Controlled trust regeneration: backed up config, removed only the client trust hash, reinstalled Browser, restarted. The app did not regenerate a trust value, so the test was stopped and the original config value was restored exactly.

    codex doctor passes install, config, auth, MCP, sandbox, update, network, WebSocket, endpoint reachability, and state database checks. Its only failure is TERM=dumb in the non-interactive diagnostic shell, which is unrelated to Browser bootstrap.

    Full CDP remains disabled. No credentials, browser data, ChatGPT Project data, repository files, or other plugins were modified.

    This is fully reproducible on the current installation. A sanitized diagnostic JSON is available if maintainers want it.

  14. takatori67 commented on Aug 19, 2026

    @takatori67

    Additional data point from the current Windows desktop build. This appears to be the same class of sandbox/trust-path issue, now failing in the newer trusted RPC service loader.

    Environment:

    • ChatGPT/Codex desktop package: OpenAI.Codex_26.814.5167.0_x64
    • Browser plugin: 26.814.41407
    • Windows: 10.0.26200.9168 x64
    • The Browser plugin and in-app browser are enabled; Microsoft Store shows the installed app as current.

    Reproduction:

    1. Open a Codex desktop task on Windows with the bundled Browser plugin enabled.
    2. Import the bundled client:
      const { setupBrowserRuntime } = await import(
        "C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-client.mjs"
      );
      await setupBrowserRuntime();
    3. Setup fails before browser discovery or page interaction with:
      Trusted RPC dependency must resolve within a configured trusted code path: file:///C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
      

    Diagnostics:

    • The cached browser-client.mjs and browser-service.mjs SHA-256 hashes exactly match the copies bundled in the installed app, so this is not cache corruption.
    • Generated ~/.codex/config.toml contains:
      NODE_REPL_TRUSTED_CODE_PATHS = 'C:\Users\<user>\.codex;...\cua_node\...\bin\node_modules'
      NODE_REPL_TRUSTED_SERVICES = '{"browser":"C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs","sky":"@oai/sky/service"}'
    • The trusted worker sandbox command grants read access to the exact Browser .../scripts directory, but not to the parent C:/Users/<user>/.codex directory used as the configured trusted code root.
    • The trusted service host calls realpathSync.native() on each configured trusted root and drops roots that cannot be resolved. The Browser service file itself resolves, but the .codex root is absent from trustedCodeRoots, so isTrustedCodePath() rejects the service.
    • The sky trusted service loads in the same Node REPL, which narrows the failure to the Browser path rooted under .codex.
    • Restarting the desktop app and JS kernel, importing the client from .codex/.tmp/bundled-marketplaces/..., and reinstall/cache checks do not resolve it.
    • Manually editing the generated global config is not persistent; the desktop app regenerates the broad .codex root at startup.
    • A workspace-local .codex/config.toml override was also not applied by this desktop path.

    Likely fix:
    Align the trusted root with the directory already granted to the trusted worker sandbox (for example, dirname(browser-service.mjs) / the plugin scripts directory), or ensure the configured .codex root is resolvable inside that sandbox. Trusting the exact service directory would also be narrower than trusting all of CODEX_HOME.

    No sandbox disablement was used.

  15. Yurii0123 commented on Aug 19, 2026

    @Yurii0123

    Additional reproducible Windows data point with a newer build.

    Environment:

    • Windows 11 Pro x64, build 26200
    • VS Code extension / Browser plugin: 26.814.41407
    • codex-cli: 0.148.0-alpha.15
    • cua_node runtime: 0.0.8/20260814183844-5f25dc4fe44e
    • Browser plugin was removed/re-added and VS Code was fully restarted

    Current error:

    Trusted RPC dependency must resolve within a configured trusted code path:
    file:///C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
    

    Checks:

    • codex doctor --summary: 17 ok, 0 fail
    • browser-client.mjs and browser-service.mjs both exist
    • The configured trusted root and service path resolve to canonical Windows paths. Using the bundled Node runtime, path.relative(trustedRoot, serviceFile) returns browser-service.mjs, so the path check would pass if the configured root reached the runtime.
    • Plugin reinstall and a fresh app process do not change the error.

    Key diagnostic:

    • codex mcp get node_repl lists NODE_REPL_TRUSTED_CODE_PATHS, NODE_REPL_TRUSTED_SERVICES, NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S, BROWSER_USE_AVAILABLE_BACKENDS, and BROWSER_USE_CODEX_APP_VERSION as configured.
    • In a fresh live runtime, nodeRepl.env contains none of those values.
    • A read-only inspection of the fresh node_repl.exe process environment also confirms that all six values are absent before the worker starts.

    This points to the configured MCP environment being dropped between the VS Code/Codex host and node_repl.exe, rather than an ACL, missing-file, SHA calculation, or canonical-path problem. Adding an exact trusted path and current client SHA to config had no effect and was reverted because it only widened the trust boundary without reaching the process.

    No private logs, pipe identifiers, or project data are included.

  16. hangwihui742-sys commented on Oct 1, 2026

    @hangwihui742-sys

    Additional Windows reproduction, October 1, 2026.
    I am seeing the same failure in Codex Desktop built-in Browser:
    privileged native pipe bridge is not available; browser-client is not trusted
    Environment:

    • Windows 11 Pro, build 26100
    • ChatGPT Desktop: 1.2026.190.0
    • Codex: 26.928.3736.0
    • Sign-in: ChatGPT account
    • Agent environment: Windows native
    • Built-in Browser, not Chrome extension
      Behavior:
    • Ctrl+Shift+B opens the built-in Browser normally.
    • Browser https://example.com fails before navigation and before any site-permission prompt.
    • The same failure reproduces in more than one existing Codex project.
    • example.com is not blocked in Browser site settings.
      Policy checks:
    • chrome://policy: no policies set
    • HKLM\SOFTWARE\Policies\OpenAI\Codex: does not exist
    • HKCU\SOFTWARE\Policies\OpenAI\Codex: does not exist
      Sandbox check:
    • Default config had [windows] but no explicit sandbox key.
    • I performed one Support-requested test with:
      sandbox = "unelevated"
    • Restarted Codex Desktop and reproduced once.
    • Exact same Browser trust error occurred.
    • %USERPROFILE%.codex.sandbox\sandbox.log did not update.
    • Its LastWriteTime remained 2026-05-13 17:27:39.
    • I then restored config.toml exactly to the pre-test state; SHA-256 matched the backup.
      Current reproduction session / feedback ID:
      01a0f6f2-8039-7160-b7a4-ceeb8c0ab077
      The actual failing JSONL event is an McpToolCall from node_repl / js invoking the bundled browser-client.mjs, with:
    • status: "failed"
    • result.isError: true
    • target URL: https://example.com
      and the exact error:
      privileged native pipe bridge is not available; browser-client is not trusted
      The failure occurs before the requested page can be opened or read.
  17. mickitty0511 commented on Oct 9, 2026

    @mickitty0511
    Author

    Windows Computer Use initialization findings

    I finally recovered a Windows Computer Use and browser initialization failure through configuration changes alone.
    These findings may help investigate environment-variable inheritance.
    And I'm afraid to say the error message posted in my first issue comment disappeared without knowing. New error messages arose instead.

    Problem

    My environment produced these new errors:

    Module not found: @oai/sky
    SyntaxError: "undefined" is not valid JSON
    

    The second error occurred when a generated trusted worker parsed NODE_REPL_TRUSTED_SERVICES as JSON.

    The verification environment was Windows build 10.0.26200.0, Codex Desktop 26.1002.52244, and bundled CLI 0.162.0-alpha.2.
    Codex ran directly on Windows with workspace-write and the Windows elevated sandbox.

    Possible cause

    My existing shell_environment_policy used inherit = "core" and a restrictive include_only list.
    The allowlist omitted app runtime variables including NODE_REPL_NODE_MODULE_DIRS, NODE_REPL_TRUSTED_SERVICES, NODE_REPL_TRUSTED_CODE_PATHS, NODE_REPL_JS_BANNER, and NODE_REPL_TRUSTED_RPC_ENABLED.

    Initialization succeeded after I adjusted inheritance, making custom environment filters a useful diagnostic target.
    I have not isolated the contribution of each variable.
    I referred to the official advanced configuration documentation for environment inheritance and filtering.

    Basic setup and recovery

    The basic setup is Codex Desktop with its bundled Computer Use/browser capabilities enabled and the normal access permissions required for the requested operations.
    The desktop must be unlocked for native app operations.
    I followed the official Computer Use guide.
    No project code changes, runtime patches, or manually installed alternative helpers were needed.

    This procedure recovered my environment:

    1. I backed up the configuration.
    2. I changed shell_environment_policy.inherit to "all".
    3. I kept the existing include_only entries and appended the 23 variables below. NODE_REPL_NODE_PATH was already included.
    4. I reset the JavaScript execution session.
    CODEX_HOME
    CODEX_CLI_PATH
    CODEX_WINDOWS_REGISTERED_CORE
    NODE_REPL_NATIVE_PIPE_CONNECT_TIMEOUT_MS
    NODE_REPL_NODE_MODULE_DIRS
    NODE_REPL_TRUSTED_CODE_PATHS
    NODE_REPL_TRUSTED_SERVICES
    NODE_REPL_UNTRUSTED_ENV_ALLOWLIST
    NODE_REPL_TRUSTED_RPC_ENABLED
    NODE_REPL_JS_BANNER
    NODE_REPL_ENABLE_AUDIO
    NODE_REPL_TRACE_META
    NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S
    NODE_REPL_INSTRUCTIONS_USE_CASE_BROWSER
    NODE_REPL_INSTRUCTIONS_USE_CASE_CHROME
    SKY_CUA_NATIVE_PIPE
    SKY_CUA_NATIVE_PIPE_DIRECTORY
    BROWSER_USE_AVAILABLE_BACKENDS
    BROWSER_USE_TINYSKY_ENABLED
    BROWSER_USE_CODEX_APP_BUILD_FLAVOR
    BROWSER_USE_CODEX_APP_VERSION
    CUA_REPL_NODE_REPL_PATH
    CUA_REPL_ENABLED_SURFACES
    

    Secret-related exclusions and sandbox settings were preserved.
    This is a verified working configuration, not a proven minimum allowlist.

    You don't have to set sandbox to unelevated! This is important for the security reasons and what I really wanted.

    Verification

    After recovery, the built-in browser opened example.com and read its contents.
    Edge opened OpenAI Help Center and successfully switched it to Japanese.
    Native Windows app checks covered screenshots, clicking, typing, and keyboard input.

    Relationship to this issue and investigation request

    I have not reproduced and resolved the error in the October 1 comment under the same conditions:

    privileged native pipe bridge is not available; browser-client is not trusted
    

    These results therefore do not establish that this issue is resolved.
    Could maintainers check whether user environment filters also affect app-managed workers and whether required initialization variables are missing?
    Documenting those variables and reporting missing variable names during initialization would make configuration-dependent failures easier to diagnose.

  18. carabinshely commented on Oct 13, 2026

    @carabinshely

    Additional observation on Windows, October 12, 2026; environment package read back October 13 as OpenAI.Codex 26.1007.2314.0, OS reported by .NET 10.0.26300.0.

    The available bundled skill was browser-use/0.1.0-alpha2. Its documented setup through mcp__node_repl__js:

    var { setupAtlasRuntime } = await import(
      "C:/Users/<user>/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha2/scripts/browser-client.mjs"
    );
    await setupAtlasRuntime({ globals: globalThis });

    failed during setup, before a usable browser inventory or a selected backend:

    privileged native pipe bridge is not available; browser-client is not trusted
    

    Separated attempts over several hours produced the same result while read-only OS process checks confirmed Chrome and Edge running. Ordinary shell operations and isolated installed Edge/Playwright runtime checks worked; those checks do not establish authenticated existing-tab access.

    Important scope limits: the supplied skill describes the in-app-browser backend. Earlier attempts to use this setup as a recovery route for an existing Chrome extension tab were an agent routing mistake; we do not claim this runtime is a documented route to Edge. However, the observed setup itself fails before backend selection. We did not inspect private native pipes or establish whether trust metadata was injected. No trust allowlist, native-host registration, browser security or account setting was changed.

    The separately exposed cua_repl entry point later failed with failed to write kernel assets ... (os error 3), reported in #41359. The two signatures are not claimed to share a root cause.

    Expected: the advertised documented runtime should initialize or report a supported, actionable explanation of the missing trust/bridge component. No private page contents, credentials, raw logs, local usernames or task IDs are included.

  19. Hirachy commented on Oct 21, 2026

    @Hirachy

    Additional Windows in-app Browser reproduction after an app update and normal restart. The supported Browser setup still fails before any tab/page is returned. This report requests a supported recovery procedure; the root cause is not confirmed. No trust bypass or broader permissions were applied.

    Codex 内置 Browser 连接故障报告
    日期:2026-10-21(Asia/Shanghai)

    更新前状态:
    版本 26.1013.40934,build 20770,prod。
    官方更新检查返回 restart_required。

    更新后状态:
    用户已正常更新并重启。
    官方更新检查返回:
    installedVersion: 26.1016.51333
    installedBuildVersion: 21161
    installedReleaseChannel: prod
    status: up_to_date

    问题:
    正常使用内置 Browser 官方技能初始化时,仍返回:
    privileged native pipe bridge is not available; browser-client is not trusted

    本轮复现:

    1. 在更新重启后,按 bundled browser-use 0.1.0-alpha2 官方入口初始化内置 iab 并读取标签列表。
      结果:上述错误,未返回任何标签或页面。
    2. 使用官方执行会话重置功能后,重新加载相同官方技能并读取标签列表。
      结果:同样错误,未返回任何标签或页面。

    预期:
    内置 Browser 能返回当前标签并读取普通页面。

    影响:
    无法操作内置 Browser;真实网页认证流程未开始。
    没有账号、店铺、短信或API请求成功的证据。

    已保持的边界:
    没有更改信任配置、插件文件、权限或浏览数据。
    没有开启CDP、切换浏览器、安装第三方组件、反复重启或强杀进程。
    没有在该错误后绕过信任检查。

    请求:
    请排查当前 Windows 桌面版本中内置 Browser 官方组件的信任/原生连接状态,
    提供受支持的恢复步骤。更新已生效,但不能确定该错误的根因。

    本报告不包含账号、手机号、URL查询参数、Cookie、密钥、令牌、私有配置或会话全文。
    本次仅提交这份脱敏技术报告,未附聊天会话或原始日志。

  20. 0xdevalias commented on Oct 26, 2026

    @0xdevalias

    Your October 21 Windows report on 26.1016.51333 still describes failure during trusted bootstrap, before browser control. Our macOS CLI/SDK 0.163.0 investigation verifies a different trusted-RPC path and separates missing transport from a missing public nodeRepl.nativePipe property. detailed investigation supplies diagnostic context; it does not establish a Windows fix.

    Related investigations and reports

    Grouped by diagnostic boundary; these links do not imply a shared root cause or that every report is fixed.

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 workingwindows-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