Summary
On Windows, Codex desktop is sometimes launching shells/tools with the workspace cwd set to the raw namespace path form \\?\C:\... instead of a normal DOS path like C:\....
That breaks Node ecosystem tools. In my case it caused pnpm to fail immediately with:
ERROR EISDIR: illegal operation on a directory, lstat 'C:'
This appears to be a Codex cwd normalization bug, not a repo-specific problem.
Environment
- OS: Windows
- Shell: PowerShell
- Workspace path:
C:\Users\brade\OneDrive\Desktop\vibecodr
- Codex desktop app
Repro
- Open a workspace in Codex desktop such that the terminal/process cwd becomes
\\?\C:\Users\brade\OneDrive\Desktop\vibecodr
- In the terminal, run:
Get-Location
node -e "console.log(process.cwd())"
pnpm -v
- Observe that PowerShell and Node report the cwd as the raw
\\?\C:\... path.
- Observe that
pnpm fails with EISDIR: illegal operation on a directory, lstat 'C:'.
Verified Comparison
Using the same repo on the same machine:
Expected Behavior
Codex should normalize Windows workspace cwd values before passing them to spawned shells/tools/processes.
Tools should receive a normal DOS path such as:
C:\Users\brade\OneDrive\Desktop\vibecodr
not the raw namespace-prefixed form:
\\?\C:\Users\brade\OneDrive\Desktop\vibecodr
Actual Behavior
Codex sometimes launches the terminal/processes with the raw \\?\ namespace path as cwd, which breaks pnpm and likely other Node tooling.
Impact
This breaks a lot of Codex desktop workflows on Windows because many app features eventually shell out to Node-based tools.
Likely Root Cause
Codex is probably preserving a Windows namespace path from internal file APIs and passing it through unchanged as the cwd for child processes.
Workaround
Manually cd to the normal path:
Set-Location -LiteralPath 'C:\Users\brade\OneDrive\Desktop\vibecodr'
or reopen the workspace from the normal path instead of the \\?\... path.
Summary
On Windows, Codex desktop is sometimes launching shells/tools with the workspace cwd set to the raw namespace path form
\\?\C:\...instead of a normal DOS path likeC:\....That breaks Node ecosystem tools. In my case it caused
pnpmto fail immediately with:This appears to be a Codex cwd normalization bug, not a repo-specific problem.
Environment
C:\Users\brade\OneDrive\Desktop\vibecodrRepro
\\?\C:\Users\brade\OneDrive\Desktop\vibecodrGet-Locationnode -e "console.log(process.cwd())"pnpm -v\\?\C:\...path.pnpmfails withEISDIR: illegal operation on a directory, lstat 'C:'.Verified Comparison
Using the same repo on the same machine:
With cwd =
\\?\C:\Users\brade\OneDrive\Desktop\vibecodrnode -e "console.log(process.cwd())"prints\\?\C:\Users\brade\OneDrive\Desktop\vibecodrpnpm -vfails withEISDIR: illegal operation on a directory, lstat 'C:'With cwd =
C:\Users\brade\OneDrive\Desktop\vibecodrnode -e "console.log(process.cwd())"printsC:\Users\brade\OneDrive\Desktop\vibecodrpnpm -vworks normallyExpected Behavior
Codex should normalize Windows workspace cwd values before passing them to spawned shells/tools/processes.
Tools should receive a normal DOS path such as:
not the raw namespace-prefixed form:
Actual Behavior
Codex sometimes launches the terminal/processes with the raw
\\?\namespace path as cwd, which breaks pnpm and likely other Node tooling.Impact
This breaks a lot of Codex desktop workflows on Windows because many app features eventually shell out to Node-based tools.
Likely Root Cause
Codex is probably preserving a Windows namespace path from internal file APIs and passing it through unchanged as the cwd for child processes.
Workaround
Manually
cdto the normal path:or reopen the workspace from the normal path instead of the
\\?\...path.