[Windows] Browser/Chrome plugin fails trusted RPC dependency path validation
Open 💬 9 comments Opened Aug 19, 2026 by xiaoyu-collab
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
Summary
On Codex for Windows, the Browser/Chrome runtime fails before it can connect to the Chrome extension with:
Trusted RPC dependency must resolve within a configured trusted code path: file:///C:/Users/xiaoyu/.codex/plugins/cache/openai-bundled/browser/26.814.41407/scripts/browser-service.mjs
Environment
- Windows 11 Professional 10.0.26200, x64
- Codex desktop app:
26.814.5167.0 - Codex CLI:
0.148.0-alpha.15 - Browser/Chrome bundled plugins:
26.814.41407 - Chrome extension updated/reinstalled
Impact
Codex cannot initialize the Browser or Chrome browser runtime. The failure occurs before the Chrome extension handshake, so browser control is unavailable.
Reproduction
- Enable the bundled Browser and Chrome plugins in Codex on Windows.
- Install/update the Chrome extension through Settings → Computer use.
- Attempt to connect to Chrome.
- Browser runtime initialization immediately fails with the trusted RPC dependency error above.
Troubleshooting already attempted
- Updated, removed, and reinstalled the Chrome extension
- Fully restarted Chrome and Codex
- Reset the Windows Codex app data
- Removed and regenerated Browser/Chrome plugin caches
- Verified directory junctions and file hashes
- Confirmed no
Zone.Identifier/Mark-of-the-Web stream on the service files - Regenerated the
node_replconfiguration inconfig.toml - Set exact
NODE_REPL_TRUSTED_CODE_PATHS - Tested both
elevatedandunelevatedWindows sandbox modes - Tested
node_replwith--disable-sandbox
Additional diagnostics
NODE_REPL_TRUSTED_CODE_PATHSincludesC:\Users\xiaoyu\.codex.NODE_REPL_TRUSTED_SERVICESpoints to the existingbrowser-service.mjsbeneath that directory.- The referenced file exists and is readable.
- Reproducing the exact path-containment implementation from the installed
node_repl.exewith the configured roots returnstrue. - Starting the same
node_repl.exeindependently with the same trusted-path variables, but without the Codex sandbox-launch environment, successfully importsbrowser-client.mjsand initializessetupBrowserRuntime(). This indicates that the trusted roots are lost or inaccessible specifically in the trusted-service subprocess launched by Codex. - Browser diagnostics found an additional native-host installation failure:
- Manifest exists:
C:\Users\xiaoyu\AppData\Local\OpenAI\extension\com.openai.codexextension.json - Missing registry key:
HKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextension check-native-host-manifest.js --browser chrome --jsonreportscorrect: false- Chrome is installed at
C:\Program Files\Google\Chrome\Application\chrome.exe. check-extension-installed.jsreports that the expected Chrome user-data directory is unavailable.- The same Codex version may work on other Windows machines, suggesting installation/registration and trusted-service environment edge cases rather than a simple version mismatch.
Request
Please investigate:
- Windows path canonicalization/containment and environment propagation for trusted RPC service subprocesses in
node_repl. - Why the Browser plugin installation can leave the native-host manifest file present but omit the required HKCU NativeMessagingHosts registry key.
- A supported repair/re-registration flow when the bundled Browser plugin cannot be uninstalled from the plugin UI.
9 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Independent reproduction on Windows with the same versions and failure:
26.814.5167.026.814.41407browser-service.mjs.browser-service.mjsare byte-identical (SHA-256:B6FD7F485FDF59CC4A25445479545B24972F6226C79C72AB7BD985D86F069615).%USERPROFILE%\.codexinNODE_REPL_TRUSTED_CODE_PATHS, andNODE_REPL_TRUSTED_SERVICESpoints to the service file beneath that directory, but validation still rejects it.config.tomlon the next startup and overwrote the change.No browser page interaction or external write occurred because initialization failed first. This seems consistent with a Windows trusted-path canonicalization/config propagation issue rather than an extension login or site-session problem.
lso reproduced when explicitly selecting Microsoft Edge; failure occurs before browser discovery.
I maintain WinBridge Recovery: https://github.com/zemeng5208/winbridge-recovery
There are two separate layers in this report, and only one of them is clearly in WinBridge's current local-repair scope.
The local Windows layer is the Chrome Native Messaging registration state: the manifest exists at
%LOCALAPPDATA%\OpenAI\extension\com.openai.codexextension.json, butHKCU\Software\Google\Chrome\NativeMessagingHosts\com.openai.codexextensionis missing and the bundled checker reportscorrect: false. WinBridge can help diagnose/recover that local manifest/registry/chrome-native-hosts-v2.jsonstate and verify that the registered host points at the expected bundledextension-host.exe. It can also check whether the Browser/Chrome bundled cache version andlatestpointer are internally consistent after repair/reinstall.The
Trusted RPC dependency must resolve within a configured trusted code pathfailure is a different boundary. In this issue, the versioned Browser service exists, is readable, the configured trusted root contains%USERPROFILE%\.codex, and the samenode_repl.execan initialize the Browser runtime outside the Codex-launched trusted-service environment. If those facts remain true after the local cache/native-host state is repaired, that points to an upstream trusted-service environment/path-propagation problem rather than a damaged local plugin cache. WinBridge cannot guarantee a fix for that upstream runtime behavior.So I would treat WinBridge here as a way to restore/verify the Native Host + bundled-cache layer and then re-test. If the trusted-RPC rejection persists with those local layers healthy, this issue still needs an OpenAI-side fix.
macOS here. I think my case may be closer to #39387 than this issue, but I'm commenting here as well because I believe these may be manifestations of the same underlying problem.
Independent reproduction with additional process-level evidence on Windows 10:
Environment
19045.6466, x6426.814.5167.00.148.0-alpha.1526.814.41407151.0.7922.138Failure
Chrome runtime initialization fails before browser discovery with:
The versioned service file exists. The bundled Browser client SHA-256 is:
New diagnostic boundary
The generated
config.tomlcontainsNODE_REPL_TRUSTED_CODE_PATHS,NODE_REPL_TRUSTED_SERVICES, module paths, browser backends, and the Codex home under[mcp_servers.node_repl.env]. However, reading only those keys from the actual failing JavaScript process returned:This was reproduced after fully restarting the desktop app, not just after resetting the JavaScript kernel.
Controlled configuration experiment
config.tomland verified the backup SHA-256 matched the source.[mcp_servers.node_repl.env].[shell_environment_policy.set].NODE_REPL_TRUSTED_SERVICESpath unchanged; did not create abrowser/latestjunction.On restart, Codex regenerated
config.tomland removed the manually added Browser-client hash while preserving the versionedNODE_REPL_TRUSTED_SERVICESentry. Initialization still failed, and the actual process environment above was still entirely absent.No registry changes, launcher installation, service deletion, or trust-bypass attempt was made.
This strongly suggests the desktop-launched Node runtime is not receiving its generated MCP environment, rather than the bundled service path merely failing lexical containment.
Additional reproducible case after the latest Windows desktop update:
26.818.2872.026.818.22352C:\Users\<redacted>\.codexis an NTFS directory junction targetingD:\CodexData\.codexbecause the system drive has insufficient free space.The in-app Browser runtime fails before browser discovery with:
Diagnostics:
26.814.41957and remains after updating to26.818.22352.Moving the Codex data back to the system drive is not a viable workaround because of system-drive capacity constraints. Please support a non-system-drive
CODEX_HOME/junction configuration in the trusted Browser runtime, or provide an officially supported low-disk migration/relocation method.Independent Windows reproduction of the native-host installation gap described in this issue.
Environment
26.814.41957mcp__node_repl__jsis exposed and the bundledbrowser-client.mjsimports successfullyObserved failure
The browser runtime initializes, but acquiring Chrome fails twice with:
The bundled diagnostics then report:
and:
The user is signed into the intended Chrome profile, but Codex cannot obtain the Chrome backend. The Chrome-running diagnostic was inconclusive because
tasklistwas denied in the sandbox; no conclusion is drawn from that check.This is not the missing-JS-tool case from #30026. The generic runtime error resembles #37307, while the concrete missing manifest/registry state matches the Windows installation/repair gap requested here.
Request
Please make Settings → Computer use install/repair both the native-host manifest and its HKCU registration atomically, and surface this specific missing-host state instead of only
Browser is not available: chrome. A supported re-registration/repair action would unblock users without requiring manual registry edits.No account data, tokens, private URLs, or workspace paths are included.
Independent reproduction on a newer Windows build, also supporting the physical non-system-drive case described in #39400.
Environment
26.818.5229.026.818.41509CODEX_HOME: physical directory on a fixed non-system drive, represented below asX:\Codex\home(not a junction or symlink)Failure
The packaged
browser-client.mjsimports successfully, butsetupBrowserRuntime()fails before browser discovery or any tab/page interaction:This affects the common Browser runtime before it can select either the in-app Browser or an extension-backed browser.
Checks and control result
browser-service.mjsexists and is readable.CODEX_HOMEdirectory, plugin cache, version directory, and service file are physical filesystem objects with no reparse target.realpath,realpath.native, andpath.resolveresults all identify the expectedX:\Codex\home\...\browser-service.mjs;pathToFileURLproduces the same URL shown in the failure.X:\Codex\homeinNODE_REPL_TRUSTED_CODE_PATHSand maps the Browser trusted service to that exact versioned service file.nodeRepl.rpc("sky", {type: "setup"})succeeds in the same live runtime (target: windows, 13 methods). This indicates that the core Node runtime and trusted-RPC channel are alive; rejection is specific to resolving/launching the local Browser service dependency.node_replprocesses after a full Codex app restart.Local task history contains successful Browser control before
CODEX_HOMEwas relocated off the system drive, followed by this exact failure after relocation. That is correlation rather than proof, but it closely matches #39400's non-system-drive boundary.Secondary configuration observation
After the app/plugin/home migration,
[shell_environment_policy.set].NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256Sstill contains the SHA-256 of the former Browser26.814client (3b9d8dcc6dc968887e8a969c63dae6380e3c1c59ff5c474eb32df08c353dad87), while the active26.818.41509client hashes to53484b46fedd277e436a0c3f38820eca8aab4e32c01bb44e1b5766eb369b5e6. The active client nevertheless imports successfully and the reported rejection namesbrowser-service.mjs, so I am not asserting that this stale hash is the sole cause. It does show that Browser trust metadata was only partially refreshed during regeneration.No browser profiles, tokens, private URLs, user names, repository contents, registry entries, ACLs, or plugin files were modified during this diagnosis.