Codex Desktop Windows+WSL resolves bundled plugin cache as invalid C:\mnt\c path
What version of the Codex App are you using?
Codex Desktop Windows Store app 26.519.5221.0.
What platform is your computer?
Windows 11 with WSL-backed Codex Desktop sessions/workspaces.
What issue are you seeing?
In a Windows Store Desktop session backed by WSL, the Desktop bundled-plugin reconciliation path repeatedly tried to access the Chrome bundled plugin cache using an invalid mixed path:
C:\mnt\c\Users\<user>\.codex\plugins\cache\openai-bundled\chrome\26.519.41501
That path is neither a valid Windows path (C:\Users\...) nor a valid WSL path (/mnt/c/Users/...). The same log line included WSL-looking marketplace roots and platformFamily=unix:
bundled_plugins_marketplace_install_failed
bundledPluginSourcePath=./plugins/chrome
errorCode=ENOENT
errorMessage="ENOENT: no such file or directory, access 'C:\\mnt\\c\\Users\\<user>\\.codex\\plugins\\cache\\openai-bundled\\chrome\\26.519.41501'"
installedPluginStatus=current
installPhase=reconcile_chrome_native_host
marketplaceRoot=/mnt/c/Users/<user>/.codex/.tmp/bundled-marketplaces/openai-bundled
platformFamily=unix
pluginName=chrome
In the same Desktop log, bundled_plugins_marketplace_install_failed occurred 150 times, usually on focus/startup-style reconcile paths. The log also showed:
bundled_plugin_chrome_extension_sync_decision ... installedPluginStatus=current isExtensionInstalled=true isPluginInstalled=true ... pluginName=chrome
bundled_plugin_install_skipped_current pluginName=chrome
bundled_plugins_reconcile_failed errorCode=ENOENT ... C:\mnt\c\Users\<user>\.codex\plugins\cache\openai-bundled\chrome\26.519.41501
Expected behavior
When Desktop is operating against a WSL-backed Codex home/workspace, bundled plugin cache paths should be resolved consistently:
- Windows/native Desktop file access should use a real Windows path such as
%USERPROFILE%\.codex\plugins\cache\.... - WSL-side operations should use
/mnt/c/Users/<user>/.codex/plugins/cache/.... - The app should not synthesize
C:\mnt\c\....
Why this matters
This produces repeated background reconcile failures and warning spam in normal Desktop operation. It may also contribute noise or delay during thread startup/resume, plugin listing, and focus-driven reconciliation. In my repro session, the failure repeated during investigation of separate turn-stall and renderer-reload issues, so I am filing it separately rather than claiming it is the root cause of those issues.
Possibly related but not exact duplicates: existing bundled Chrome/plugin cache issues such as #21936, #22035, and #22114. This issue is specifically about Windows+WSL path translation producing C:\mnt\c\... during Desktop bundled-plugin reconciliation.
9 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Complete Solution Submitted
Root Cause
1|---
2|title: "Codex Desktop Windows+WSL resolves bundled plugin cache as invalid C:\\mnt\\c path"
3|issue: https://github.com/openai/codex/issues/24268
4|repo: openai/codex
5|type: bug-fix
6|area: app, skills, windows-os
7|competition: zero (0 comments)
8|quote: $1,000-$2,000
9|---
10|
11|
12|
13|On Windows with WSL, Codex Desktop resolves the bundled plugin cache path as
C:\mnt\c\...which is an invalid WSL path. The correct path shoulKey Fixes
Testing Strategy
Files
Full solution document:
codex-24268-windows-wsl-plugin-cache-invalid-path-fix.md---
Submitted via automated solution pipeline. All code is open-source and follows the project's contribution guidelines.
Additional sanitized data point after updating to the newer Windows Store/Desktop build family:
The same Windows+WSL path-normalization failure still reproduces in the bundled-plugin reconciliation path, now with the newer bundled plugin cache version:
Relevant surrounding log sequence:
This suggests the bug was not limited to the earlier
26.519.xplugin cache version. The product is still crossing the Windows/WSL boundary with inconsistent path semantics: the marketplace root is sometimes a WSL path (/mnt/c/...), while the native access path is synthesized as invalidC:\mnt\c\...instead of either%USERPROFILE%\.codex\...or/mnt/c/Users/<user>/.codex/....This is still an issue as of 0.137
Additional current-build data point: this path-normalization issue also interacts with bundled marketplace/cache drift for Computer Use.
Observed in the Windows Desktop + WSL setup:
openai-bundledmarketplace was rewritten to a subset that contained onlylatexin one restart/reconcile state;computer-use@openai-bundledthen disappeared from the usable cache/manifest path even though the current app bundle includedcomputer-use;That failure was not evidence that Computer Use app control was impossible. It was a bundled plugin materialization/reconcile failure.
The local repair that made CUA work again had to verify all of these independently:
computer-use;computer-use-client.mjsexists under the installed bundled plugin cache;C:\mnt\c\...or\mnt\c\...;node_replruntime uses an isolated Windows home;computer-use-client.mjsruntime.Suggested product test for this issue family:
computer-use-client.mjsremains present and importable by the product-selected Windowsnode_replruntime.This is adjacent to the original
C:\mnt\cChrome path bug, but the same inconsistent Windows/WSL path contract can also make Computer Use look broken by removing or hiding the trusted client file.Additional current-build evidence that the mixed
C:\mnt\cpath is recreated after an apparently successful repair:The Windows Desktop configuration contained a bundled marketplace source represented as a WSL path:
Using the bundled official
installManifest.mjswith the Windows Node/Codex runtime temporarily produced a fully native Windows chain:chrome\latestpointed toC:\Users\<windows-user>\.codex\plugins\cache\...\chrome\<version>;C:\Users\...\extension-host.exepath;extension-host-config.jsonused Windows-native paths;extension-host.exe.After a later Codex Desktop restart/reconciliation, Desktop recreated the broken mixed path state:
This confirms that the issue is not limited to a one-time bad installation or an older cache version. A valid Windows-native chain can be repaired and proven at runtime, then be overwritten by a later Desktop reconciliation because the marketplace/cache authority crosses the Windows/WSL boundary with inconsistent path semantics.
Suggested regression test:
%USERPROFILE%\.codex.C:\Users\...paths.C:\mnt\c\...or\mnt\c\....Chrome was disabled after this test to prevent repeated reconciliation from reintroducing the invalid path state.
The current build provides a second, runtime-level consequence of the same
path-contract bug. The v2 native-host ledger and the Chrome manifest no longer
identify the same executable under Chromium's Windows path semantics.
Current generated state (sanitized):
A
C:\mnt\ccompatibility junction can make the v2 ledger target exist andallows Desktop's plugin reconciler to finish. It does not make the manifest
launchable by Chrome.
Chromium's Windows
FilePath::IsAbsolute()accepts either a drive plus aseparator or two leading separators. The generated manifest has only one
leading separator, so it is non-absolute:
The native process launcher appends a non-absolute host path to the manifest
directory. The effective executable becomes:
That file does not exist. In the same state:
hash, extension installation/enabled state, registry key, and v2 ledger all
pass;
check-native-host-manifest.js --jsonpasses because it checksmanifest name/origin and registry presence, but not executable-path
resolution/existence;
Browser is not available: extension, andbrowser enumeration is empty.
This explains why a compatibility mirror can turn repeated reconciliation
errors green while authenticated Chrome remains unusable. A complete product
regression test needs to resolve the manifest path using Chromium's own Windows
rules, assert the resulting executable exists, assert it matches the current
v2 ledger target, then perform an actual extension connection after restart.
No PR referencing #24268 or
reconcile_chrome_native_hostis currently visiblethrough native GitHub search.
This was fixed at one point (in May) and reintroduced as a regression (early June).
@etraut-openai would be great if you'd have a look at this - thanks
Additional current-build reproduction: mixed path breaks in-app Browser Use
Environment
26.707.9564.00.144.2runCodexInWindowsSubsystemForLinux = falseC:\Users\<user>\Documents\<project>C:\mnt\c\Users\<user>\Documents\<project>Observed behavior
On the first Browser Use bootstrap attempt,
node_repl/jswas exposed but rejected the task metadata before any page interaction:On subsequent turns in the same thread:
node_repl.exeprocesses are running.node_replMCP server passescodex doctorconfiguration checks.mcp__node_repl__jsis no longer exposed to the task.Local state records the thread with the invalid mixed
C:\mnt\c\...workspace even though the Desktop agent is configured for Windows-native mode and the saved project is a validC:\Users\...path.Impact
Expected behavior
Diagnostics completed
codex doctor --jsonreports installation, config, MCP config, and runtime health as locally consistent; it does not detect the mixed-path defect.Task/session ID
019f5f6b-4c49-7611-8135-a8a3f4966918This comment intentionally excludes the user's name, résumé, job-application content, credentials, and raw logs.