Skip to content

Windows Codex Desktop sandbox blocks Node child_process, WSL, Schannel clients, and pip temp installs #21470

Open

Description

@sanjayshetty

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

26.429.61741

What subscription do you have?

ChatGPT Plus

What platform is your computer?

Windows, Codex Desktop app, PowerShell shell, WSL2 Ubuntu installed and working

What issue are you seeing?

Summary

On Windows Codex Desktop, several plugin/dev workflows fail inside the Codex shell even though the same project works in WSL2. The most visible failure was with the Remotion plugin/workflow, but the underlying issues appear broader: Node child processes are blocked, Windows Schannel-backed web clients fail TLS, pip temp folders become inaccessible, and wsl.exe cannot be started from the Codex shell.

The Remotion project successfully rendered in Ubuntu/WSL2 using the same source files, so the Remotion plugin/project itself appears healthy. The failures seem specific to the Windows Codex sandbox/runtime environment.

Environment

  • OS: Windows, Codex Desktop app
  • Workspace path: C:\Users\<user>\OneDrive\Desktop\OlderNewDocuments-todelete\New project
  • Codex shell: PowerShell
  • Installed plugin involved: Remotion plugin with remotion-best-practices skill present
  • WSL2 Ubuntu installed and working
  • Bundled Codex Node path:
    • C:\Users\<user>\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin\node.exe
  • Bundled Codex Python path:
    • C:\Users\<user>\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe

Issues observed

1. Node can run, but Node child_process is blocked with EPERM

Node itself starts successfully in the Codex shell:

v24.14.0

But Node cannot spawn child processes, including itself or cmd.exe:

execPath FAIL EPERM spawnSync C:\Users\<user>\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin\node.exe
cmd FAIL EPERM spawnSync cmd.exe
pwsh FAIL EPERM spawnSync powershell.exe

Copying node.exe into the workspace did not help:

fail C:\Users\<user>\OneDrive\Desktop\OlderNewDocuments-todelete\New project\tools\node.exe EPERM spawnSync ...
fail cmd.exe EPERM spawnSync cmd.exe

Python subprocesses do work from the same Codex shell:

python subprocess OK 123

Impact:

  • Remotion CLI cannot run in Windows Codex because it needs Node child processes for esbuild, Chromium, and ffmpeg.
  • Other Node-heavy plugins or workflows may be affected too.

2. Remotion CLI fails in Windows Codex but works in WSL2

Inside Windows Codex, after dependencies were installed, Remotion still failed because esbuild requires Node process spawning:

Error: spawn EPERM
at ensureServiceIsRunning (...\node_modules\esbuild\lib\main.js:1982:29)
at loadConfigFile (...\node_modules\@remotion\cli\dist\load-config.js:21:61)

Inside WSL2 Ubuntu, the same project works:

npm run still
Rendered still
out/slide-03-check.png

And:

npm run build
Rendered frames
Encoded video
out/slide-03-love-back.mp4 3.1 MB

This strongly suggests the project/plugin is not fundamentally broken; the Windows Codex sandbox is the blocker.

3. wsl.exe cannot be started from Codex shell

Trying to automate the WSL workaround from inside Codex failed:

Access is denied.
Error code: Wsl/Service/CreateInstance/E_ACCESSDENIED

Impact:

  • Codex cannot directly run the WSL workaround, even though WSL works manually in Windows Terminal.
  • Users have to manually copy/sync/run commands in Ubuntu, which is confusing and brittle.

4. PowerShell Invoke-WebRequest and Windows curl fail TLS via Schannel

PowerShell web requests fail:

Invoke-WebRequest FAIL https://registry.npmjs.org/npm/latest
The underlying connection was closed: An unexpected error occurred on a receive.
INNER System.ComponentModel.Win32Exception No credentials are available in the security package

Windows curl.exe fails similarly:

curl: (35) schannel: AcquireCredentialsHandle failed: SEC_E_NO_CREDENTIALS (0x8009030e)
No credentials are available in the security package

Setting TLS 1.2 did not fix it.

However, Node HTTPS fetch works:

node https fetch: OK 200

Python urllib HTTPS also works:

python https urllib: OK 200

Impact:

  • PowerShell-based download/install scripts break.
  • Workarounds need to use Node/OpenSSL or Python urllib instead of Windows Schannel-backed clients.

5. pip reaches PyPI but fails writing temp wheel/metadata files

pip can reach PyPI but fails when writing files into temp unpack folders:

ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied:
'...\pip-unpack-...\colorama-0.4.6-py2.py3-none-any.whl.metadata'

With legacy resolver:

Permission denied:
'...\pip-unpack-...\colorama-0.4.6-py2.py3-none-any.whl'

Manual Python can write similarly named files and extract wheel files in the same workspace, so this appears to be pip's temp/unpack behavior interacting badly with Codex sandbox ACLs.

Impact:

  • Python package installs may fail inside Codex.
  • Manual wheel download/extract works as a workaround for simple packages.

6. Browser plugin failed to initialize in this session

When attempting to use the Browser plugin to open the GitHub issue page, Browser initialization failed:

failed to write kernel assets: The system cannot find the path specified. (os error 3)

Retrying from a fresh Node REPL state produced the same error. A minimal Node REPL sanity check also failed with the same message before any browser code could run:

failed to write kernel assets: The system cannot find the path specified. (os error 3)

Impact:

  • Browser automation was not available to submit or inspect the issue from within Codex.
  • The failure appears to be at the Node REPL/kernel asset setup layer, which Browser depends on, not at a specific website or GitHub page.

What steps can reproduce the bug?

These are the concrete workflows/commands that reproduced the failures in Windows Codex Desktop:

Reproduction details

1. Node can run, but Node child_process is blocked with EPERM

Node itself starts successfully in the Codex shell:

v24.14.0

But Node cannot spawn child processes, including itself or cmd.exe:

execPath FAIL EPERM spawnSync C:\Users\<user>\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin\node.exe
cmd FAIL EPERM spawnSync cmd.exe
pwsh FAIL EPERM spawnSync powershell.exe

Copying node.exe into the workspace did not help:

fail C:\Users\<user>\OneDrive\Desktop\OlderNewDocuments-todelete\New project\tools\node.exe EPERM spawnSync ...
fail cmd.exe EPERM spawnSync cmd.exe

Python subprocesses do work from the same Codex shell:

python subprocess OK 123

Impact:

  • Remotion CLI cannot run in Windows Codex because it needs Node child processes for esbuild, Chromium, and ffmpeg.
  • Other Node-heavy plugins or workflows may be affected too.

2. Remotion CLI fails in Windows Codex but works in WSL2

Inside Windows Codex, after dependencies were installed, Remotion still failed because esbuild requires Node process spawning:

Error: spawn EPERM
at ensureServiceIsRunning (...\node_modules\esbuild\lib\main.js:1982:29)
at loadConfigFile (...\node_modules\@remotion\cli\dist\load-config.js:21:61)

Inside WSL2 Ubuntu, the same project works:

npm run still
Rendered still
out/slide-03-check.png

And:

npm run build
Rendered frames
Encoded video
out/slide-03-love-back.mp4 3.1 MB

This strongly suggests the project/plugin is not fundamentally broken; the Windows Codex sandbox is the blocker.

3. wsl.exe cannot be started from Codex shell

Trying to automate the WSL workaround from inside Codex failed:

Access is denied.
Error code: Wsl/Service/CreateInstance/E_ACCESSDENIED

Impact:

  • Codex cannot directly run the WSL workaround, even though WSL works manually in Windows Terminal.
  • Users have to manually copy/sync/run commands in Ubuntu, which is confusing and brittle.

4. PowerShell Invoke-WebRequest and Windows curl fail TLS via Schannel

PowerShell web requests fail:

Invoke-WebRequest FAIL https://registry.npmjs.org/npm/latest
The underlying connection was closed: An unexpected error occurred on a receive.
INNER System.ComponentModel.Win32Exception No credentials are available in the security package

Windows curl.exe fails similarly:

curl: (35) schannel: AcquireCredentialsHandle failed: SEC_E_NO_CREDENTIALS (0x8009030e)
No credentials are available in the security package

Setting TLS 1.2 did not fix it.

However, Node HTTPS fetch works:

node https fetch: OK 200

Python urllib HTTPS also works:

python https urllib: OK 200

Impact:

  • PowerShell-based download/install scripts break.
  • Workarounds need to use Node/OpenSSL or Python urllib instead of Windows Schannel-backed clients.

5. pip reaches PyPI but fails writing temp wheel/metadata files

pip can reach PyPI but fails when writing files into temp unpack folders:

ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied:
'...\pip-unpack-...\colorama-0.4.6-py2.py3-none-any.whl.metadata'

With legacy resolver:

Permission denied:
'...\pip-unpack-...\colorama-0.4.6-py2.py3-none-any.whl'

Manual Python can write similarly named files and extract wheel files in the same workspace, so this appears to be pip's temp/unpack behavior interacting badly with Codex sandbox ACLs.

Impact:

  • Python package installs may fail inside Codex.
  • Manual wheel download/extract works as a workaround for simple packages.

6. Browser plugin failed to initialize in this session

When attempting to use the Browser plugin to open the GitHub issue page, Browser initialization failed:

failed to write kernel assets: The system cannot find the path specified. (os error 3)

Retrying from a fresh Node REPL state produced the same error. A minimal Node REPL sanity check also failed with the same message before any browser code could run:

failed to write kernel assets: The system cannot find the path specified. (os error 3)

Impact:

  • Browser automation was not available to submit or inspect the issue from within Codex.
  • The failure appears to be at the Node REPL/kernel asset setup layer, which Browser depends on, not at a specific website or GitHub page.

Workaround validation

Created workspace-local helper scripts:

  • tools\npm.cmd / tools\npx.cmd: call local npm via bundled/workspace Node
  • tools\fetch-url.js: Node/OpenSSL downloader replacing PowerShell/curl web requests
  • tools\Invoke-NodeWebRequest.ps1: PowerShell wrapper around Node downloader
  • tools\wheel_install.py: direct PyPI wheel download/extract bypassing pip temp folders
  • tools\codex_env_check.py: diagnostic script showing Node child_process failure and HTTPS status
  • render-remotion-wsl.cmd / tools\render-remotion-wsl.ps1: Windows-side wrapper intended to sync/render via WSL, but this cannot run from inside Codex because wsl.exe is access denied

Manual WSL2 workflow succeeded:

cd ~/code
rsync -av --exclude node_modules --exclude .npm-cache --exclude .npm-tmp --exclude out \
  "/mnt/c/Users/<user>/OneDrive/Desktop/OlderNewDocuments-todelete/New project/relationship-slide-03-animation/" \
  "$HOME/code/relationship-slide-03-animation/"

cd ~/code/relationship-slide-03-animation
npm install
npm run still
npm run build

Additional WSL libraries were needed for Remotion Chrome headless shell:

sudo apt install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \
  libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 \
  libasound2t64 libpango-1.0-0 libcairo2 libx11-xcb1 libxcb1 libxext6 libxshmfence1

What is the expected behavior?

  • Node child_process should be allowed for workspace-local/bundled tools when running with appropriate Codex permissions, or Codex should clearly document that Node CLIs requiring child processes are unsupported in Windows sandbox mode.
  • wsl.exe should either be callable from Codex Desktop when WSL is installed, or Codex should provide a supported bridge/workflow for WSL execution.
  • PowerShell/curl HTTPS should not fail with Schannel SEC_E_NO_CREDENTIALS, or the Codex docs should recommend Node/Python download paths inside this sandbox.
  • pip package installs should work with workspace-local temp/cache dirs, or docs should explain known limitations and provide recommended install patterns.
  • Plugin workflows such as Remotion should detect Windows sandbox limitations and suggest WSL2 automatically.

Additional information

Questions

  1. Is Node child_process intentionally blocked in Windows Codex Desktop sandbox?
  2. Is wsl.exe intentionally blocked from Codex Desktop?
  3. Are Schannel clients expected to fail with SEC_E_NO_CREDENTIALS in Codex Desktop?
  4. Is there a recommended way for plugins like Remotion to run Node-heavy CLI workflows on Windows?
  5. Should plugin authors add Windows Codex checks/fallbacks for these sandbox limitations?

Note

Local Windows username/path segments were redacted before posting. The Browser automation note in the source report may have been session-specific; the browser was available while preparing this GitHub issue.

Activity

  1. added
    appIssues related to the Codex desktop app
    on May 7, 2026
  2. added
    bugSomething isn't working
    windows-osIssues related to Codex on Windows systems
    sandboxIssues related to permissions or sandboxing
    connectivityIssues involving networking or endpoint connectivity problems (disconnections)
    on May 7, 2026
  3. sanjayshetty commented on May 7, 2026

    @sanjayshetty
    Author

    I also submitted in-app Codex feedback with current session logs included.

    Feedback ID:
    019e006a-6356-72f3-986c-f1628654fc76

  4. sanjayshetty commented on May 7, 2026

    @sanjayshetty
    Author

    Thanks for the duplicate detection. These issues appear related and cover parts of this report:

    I’m leaving this open for now because this report ties together multiple Windows Codex Desktop sandbox/runtime failures in one environment, also includes Schannel/curl HTTPS and pip temp install behavior, and links in-app feedback logs via feedback ID 019e006a-6356-72f3-986c-f1628654fc76. Happy to close or split it if maintainers prefer.

  5. arphox commented on Sep 14, 2026

    @arphox

    Please fix this bug.

  6. Xain3 commented on Sep 30, 2026

    @Xain3

    Additional reproduction of the WSL failure in section 3 on 30 September 2026. This was tested with a Windows-native Codex agent and a Windows-local workspace under C:\Users\<user>\Documents\Codex\... (personal paths redacted).

    Verified environment:

    • Windows version: 10.0.26300.9457 (reported by wsl.exe --version)
    • Bundled CLI: codex-cli 0.159.2
    • Agent command shell: PowerShell Core 7.6.6
    • Sandbox: workspace-write
    • WSL distribution: Ubuntu
    • Codex desktop app: 26.928.21956
    • WSL: 2.7.8.0; kernel: 6.18.33.1-1; WSLg: 1.0.73.2 (verified with wsl.exe --version)

    Controlled comparison from the diagnostic tests:

    Command Inside native Windows sandbox Outside sandbox
    wsl.exe --exec /bin/true Exit 1; CreateInstance access denied Identical command exits 0
    wsl.exe --status Exit 1; EnumerateDistros access denied Not included in the outside-sandbox comparison
    wsl.exe --version Exit 0; reports installed versions Not included in the outside-sandbox comparison

    Exact errors:

    Access is denied.
    Error code: Wsl/Service/CreateInstance/E_ACCESSDENIED
    
    Wsl/EnumerateDistros/Service/E_ACCESSDENIED
    

    The outside-sandbox success was recorded in a separate diagnostic chat on the same machine. The CreateInstance failure was also reproduced independently in other Windows-local chats, including with wsl.exe --exec pwd.

    Native Windows commands and workspace reads succeed. Windows computer-use initialization, app discovery/observation, mouse dragging, Ctrl+Z keyboard input, and in-app browser navigation also succeeded in the diagnostic tests. The corresponding inspected sandbox refresh entries show errors=[]. This isolates the WSL failure from a general sandbox startup or computer-use initialization failure.

    Changing the app's default terminal preference to WSL did not demonstrate a change to the agent command shell: the tested chats still executed through PowerShell. The app-terminal state could not be verified, so this report does not claim that an interactive WSL terminal was successfully launched.

    On the same machine, a different failure occurs when the registered workspace itself is a \\wsl.localhost\Ubuntu\... path: sandbox setup fails while applying Windows permissions. I documented that separately in #35380. These are distinct observed failure modes; a shared implementation cause has not been established.

    This comment confirms the WSL symptom only; it does not claim reproduction of the Node, Schannel, or pip failures in the original report.

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 appbugSomething isn't workingconnectivityIssues involving networking or endpoint connectivity problems (disconnections)sandboxIssues related to permissions or sandboxingwindows-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