Skip to content

Windows app 26.1002.51308: sandbox setup fails with sharing violation when validating its own active runtime #51601

Open

Description

@yuichitanaka51-cyber

Title: Windows app 26.1002.51308: sandbox setup fails with sharing violation when validating its own active runtime

Summary

After updating the Windows Codex app to 26.1002.51308 (build 13417), all command execution fails before the requested command starts:

helper_unknown_error: setup refresh had errors

Node REPL also fails:

trusted Node process exited unexpectedly

Sandbox logs show that runtime ACL validation attempts to open files currently used by Codex itself and fails with Windows error 32 (ERROR_SHARING_VIOLATION).

Environment

  • OS: Windows
  • Codex app: 26.1002.51308, build 13417
  • Windows sandbox: elevated
  • Previous helper directory: Codex\bin\5ea220ae823df3d7
  • Previous command-runner version: 0.160.1
  • Current helper directory: Codex\bin\979a96ce184041d1
  • Current runtime: cua_node\2c9e75c4e9c71beb

Expected behavior

Sandbox setup should complete while Codex's own runtime processes are running. Commands and Node REPL should start normally.

Actual behavior

Every command fails during sandbox setup refresh. The relevant log entry is:

runtime read/execute validation failed: validate runtime read/execute access on
C:\Users\<USER>\AppData\Local\OpenAI\Codex\runtimes\cua_node\2c9e75c4e9c71beb\bin\node_repl.exe:
open ACL target for root-only update: The process cannot access the file because it is being used by another process. (os error 32)

After stopping the two node_repl.exe processes during an earlier diagnostic test, validation passed that file but failed with the same error on:

...\bin\node_modules\@oai\sky\bin\windows\swift\x64\VCRUNTIME140_1.dll

Stopping those processes did not resolve the issue.

Regression evidence

From %USERPROFILE%\.codex\.sandbox\sandbox.2026-10-07.log:

  • Previous helper: 50 successful setup refreshes, no failures.
  • Current helper: 13 failed setup refreshes, no successes.
  • Latest recorded failure: October 7, 2026, 15:05 JST.
  • Logs from October 6 and earlier contain no runtime read/execute validation entries.

Both restarting the app and rebooting Windows failed to resolve the problem. No newer app update was available when checked.

Diagnostic findings

  • There is only one runtime under runtimes: cua_node\2c9e75c4e9c71beb.
  • There are no old runtime directories or .staging-* directories.
  • Therefore, the stale-runtime workaround described in Windows sandbox helper fails with helper_unknown_error: setup refresh had errors on every exec_command and file read #44696 does not apply here.
  • Processes using the affected runtime include Codex's own node_repl.exe, node.exe, and codex-computer-use-swift.exe.
  • Read and execute permissions for the sandbox group are already present.
  • The earlier, separate error 5 / helper_sandbox_lock_failed issue has been resolved.
  • A separate error 32 involving C:\Users\<USER> is followed by continuing setup; it is not the fatal failure described above.

The latest investigation was read-only. No files, configuration, or permissions were changed.

Suspected cause — not confirmed

Based on the public openai/codex main branch inspected on October 7, 2026:

In codex-rs/windows-sandbox-rs/src/acl.rs, ensure_allow_mask_aces_with_inheritance_impl opens a target with OpenOptions and access_mode(MAXIMUM_ALLOWED) when inheritance == 0, using the context:

open ACL target for root-only update

In setup_provisioning/setup_runtime_bin.rs, ensure_runtime_tree_readable calls grant_read_execute_aces(..., 0) for files throughout the runtime tree.

My hypothesis is that requesting MAXIMUM_ALLOWED may include write access when opening running executables or loaded DLLs, causing a sharing violation. That validation error then causes the entire setup refresh to fail, blocking all command execution.

This is an inference from the logs and public source, not a confirmed root cause. I have not verified that the public main branch exactly matches the installed app build.

Possible fix directions

Please consider whether ACL inspection can open targets with READ_CONTROL only, requesting WRITE_DAC separately only when an ACL change is actually needed.

It may also be worth reviewing how validation handles files already in use by Codex. Any handling of sharing violations should preserve the required sandbox access checks rather than simply bypassing them.

Related issue

#44696 reports runtime validation failures, but its stale-runtime workaround does not match this environment.

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    windows-osIssues related to Codex on Windows systems
    sandboxIssues related to permissions or sandboxing
    on Oct 7, 2026
  2. MazDragon commented on Oct 7, 2026

    @MazDragon

    Seeing the same failure with the same helper and runtime on another Windows installation.

    • Installed package: OpenAI.Codex_26.1002.6548.0_x64__2p2nqsd0c76g0
    • Helper: %LOCALAPPDATA%\OpenAI\Codex\bin\979a96ce184041d1
    • Runtime: %LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\2c9e75c4e9c71beb

    A normal delegated PowerShell Get-Location fails before process creation with: exec-server rejected request (-32603): helper_unknown_error: setup refresh had errors.

    The sandbox log at 2026-10-07 06:35:28 UTC reports runtime read/execute validation failing on the runtime's bin\node_repl.exe, with "open ACL target for root-only update" and "The process cannot access the file because it is being used by another process. (os error 32)". Earlier attempts reported the same error on bin\node_modules@oai\sky\bin\windows\swift\x64\VCRUNTIME140_1.dll.

    Recovery attempts:

    • A fresh thread still failed.
    • Fully exited the app, confirmed the old node_repl/node/codex processes were gone, and reopened it. New helper processes started, but execution still failed.
    • After a full Windows reboot, Get-Location still failed at approximately 06:41 UTC with the same generic setup error. I have not re-read the detailed sandbox log after that reboot, so cannot confirm the post-reboot failing file.

    No manual ACL, cache, or security-setting changes were made for the recovery attempts listed above. The root cause remains unconfirmed.

    Update: After backing up the configuration, setting windows.sandbox to "unelevated", and restarting the app, the same existing delegated thread ran Get-Location normally (exit 0, expected working directory). A read-only check confirmed the configured setting and matching backup. This restored basic command execution through the configured fallback; the elevated-sandbox failure remains unresolved. The effective runtime implementation was not exposed by the check.

  3. KazxMartin commented on Oct 7, 2026

    @KazxMartin

    Additional reproduction and controlled access-mask comparison on Windows 11 Pro x64 (10.0.26200), reported with the affected user's explicit authorization

    Environment and impact

    • Desktop app reports version 26.1002.51308, build 13417, prod channel
    • Windows package version is 26.1002.6548.0
    • Bundled CLI is 0.162.0-alpha.2
    • Configured Windows sandbox remains elevated
    • Bundled Node binary reports v24.21.0
    • Browser Use and Computer Use cannot initialize, and ordinary sandboxed shell commands fail before execution
    • The workflow requires access to existing authenticated browser tabs, so an unrelated standalone shell working is not sufficient recovery

    Update correlation

    Windows deployment logs show the package updating from 26.930.7945.0 to 26.1002.6548.0 on 2026-10-07 at approximately 08:22–08:28 Europe/Moscow
    Previous sandbox logs show successful setup with command runner 0.160.1; subsequent logs show the current helper failing
    This is evidence of a regression correlation, not a debugger-level match of the installed helper to source

    Failure

    The fatal setup error is associated with the active runtime file:

    %LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\<runtime-id>\bin\node_repl.exe
    open ACL target for root-only update:
    The process cannot access the file because it is being used by another process. (os error 32)
    helper_unknown_error: setup refresh had errors
    

    After an explicitly authorized termination of the existing Node REPL processes, validation instead failed on the same runtime's Computer Use VCRUNTIME140_1.dll
    Stopping helpers did not provide durable recovery; restarting the app did not restore operation
    The runtime directory currently contains one runtime version, with no stale staging directory observed

    Non-mutating Win32 comparison

    Against the same active node_repl.exe, two rounds of CreateFileW probes produced:

    Desired access Result
    MAXIMUM_ALLOWED (0x02000000) Error 32
    READ_CONTROL (0x00020000) Success
    READ_CONTROL + WRITE_DAC (0x00060000) Success

    All other arguments were identical: share read/write/delete (7), OPEN_EXISTING (3), FILE_FLAG_BACKUP_SEMANTICS (0x02000000), null security/template arguments
    Handles were immediately closed; no file contents or ACLs were changed
    The file's security descriptor was checked before/after and was unchanged
    Ten matching Node REPL processes were still present during the latest comparison

    These probes ran in a separately approved diagnostic shell outside the failing sandbox
    They establish the access-mask-dependent open failure, not successful end-to-end execution of a repaired elevated sandbox

    Scope of suspected fix

    The public change #49690 intentionally uses MAXIMUM_ALLOWED for non-inheriting ACL updates to preserve child permissions
    We are not proposing blindly removing that behavior or bypassing validation
    Please investigate whether inspection of active EXE/DLL targets can use READ_CONTROL first and request ACL changes only when required, while retaining the intended directory inheritance guarantees

    A separate one-off unelevated diagnostic launched Node successfully, while the elevated equivalent failed
    The persistent configuration has not been changed, no runtime/helper binaries have been replaced, and no manual ACL changes have been made
    A separate official 0.160.1 comparison is planned but has NOT yet been performed on this installation

    Requested outcome

    Please prioritize a supported recovery that restores ordinary commands and Browser Use / Computer Use while retaining elevated isolation

    Preferred: a fixed desktop/helper build with regression coverage for active bundled EXE/DLL files and preserved child ACLs
    Alternative: guidance on whether an official stable CLI can be used independently with the existing browser/computer-use integration, without replacing signed desktop components

    Please identify the fixed version when available, or confirm the supported interim procedure and its limitations
    No credentials, browser contents, private project URLs, personal paths, raw logs, or chat transcripts are included in this comment

  4. AmbasaS2 commented on Oct 7, 2026

    @AmbasaS2

    Additional affected installation: all business and development work blocked for approximately two hours

    I am reporting another affected Windows desktop installation. The user explicitly authorized this report and states that their entire business and development workflow has been effectively paralyzed for approximately two hours. This includes day-to-day business operations, signed-in Chrome workflows, advertising and sales management, software implementation, and verification. Please treat this as an ongoing operational blocker.

    Existing chat messages can still be sent, but Browser/Computer Use cannot initialize and normal sandboxed local commands fail before execution. Separately approved outside-sandbox diagnostic commands work; they do not restore the user's normal browser and development workflow.

    Reproduction and error

    On this affected installation, calling the documented Browser Use entry point await cua.getState(); fails before browser inventory or any Chrome page can be returned:

    node_repl kernel exited unexpectedly
    kernel_status: exited(code=1)
    windows sandbox failed: helper_unknown_error: setup refresh had errors
    

    The fatal sandbox log identifies:

    runtime read/execute validation failed:
    validate runtime read/execute access on
    %LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\<runtime-id>\bin\node_repl.exe:
    open ACL target for root-only update:
    The process cannot access the file because it is being used by another process. (os error 32)
    

    After specifically approved helper termination, validation progressed to the same sharing violation on @oai\sky\bin\windows\swift\x64\VCRUNTIME140_1.dll. The desktop app immediately relaunched its computer-use helper after that helper was separately approved for termination. A subsequent full desktop app restart again reproduced the node_repl.exe validation failure.

    New controlled access-mode evidence

    Without changing file contents or ACLs, we opened and immediately closed handles for the active node_repl.exe and VCRUNTIME140_1.dll. Both tests used FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, OPEN_EXISTING, and FILE_FLAG_BACKUP_SEMANTICS:

    File READ_CONTROL MAXIMUM_ALLOWED
    node_repl.exe Success Windows error 32
    VCRUNTIME140_1.dll Success Windows error 32

    This supports the access-mode hypothesis in this issue. It does not establish that public main is identical to the installed binary.

    Environment and recovery already attempted

    • Windows 11 Pro, build 22000.
    • Bundled CLI: 0.162.0-alpha.2.
    • Built-in updater: 26.1002.51308, build 13417, prod, up_to_date.
    • Running Windows package label: OpenAI.Codex_26.1002.6548.0. The difference between these version labels has not been reconciled.
    • Observed October 7, 2026, Asia/Seoul.
    • Repeated app restarts, an earlier PC reboot, documented tool reset/reinitialization, and narrowly approved helper termination have not restored the normal workflows.
    • Chrome profiles, extensions, conversations, and sandbox/security settings were preserved. No runtime deletion, ACL changes, binary replacement, or sandbox disabling was performed.

    Relationship to today's Work rollback

    The separate new Work window's Send button also remains unresponsive. The status incident acknowledges inability to create new Work threads and rollback of version 26.1002.51308:
    https://status.openai.com/incidents/01M4ADHMMBK7K92NJFJ0DXRYJM

    That announcement does not explicitly cover this Browser/Computer Use runtime sharing violation. Please confirm whether the rollback will also restore Chrome access and normal sandboxed execution, or whether a separate fix is required. Please provide a supported recovery path and restoration guidance that preserves the user's existing data and sandbox protections.

    Personal paths are anonymized. No credentials, account details, customer/business data, screenshots, full session transcripts, or raw logs are included.

  5. Master-Zhi commented on Oct 7, 2026

    @Master-Zhi

    Additional reproduction on another Windows installation, with a before/running/after control experiment supporting the access-mask regression.

    Verified environment and failure

    • App updater reports 26.1002.51308, build 13417, prod channel, up_to_date.
    • Windows package label: OpenAI.Codex_26.1002.6548.0_x64.
    • Bundled CLI --version: codex-cli 0.162.0-alpha.2.
    • Configured sandbox: elevated.
    • A normal shell-tool Get-Location fails before process creation. Separately approved outside-sandbox diagnostics work.
    • Fatal target: %LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\2c9e75c4e9c71beb\bin\node_repl.exe.
    • Error chain: runtime read/execute validation failed -> open ACL target for root-only update -> Windows error 32 -> setup refresh had errors.

    A full Windows reboot was independently verified from LastBootUpTime. After reboot, Codex started new node_repl.exe processes, and the subsequent sandbox refresh failed on that executable again. This was not merely an old process surviving an app restart.

    Controlled Win32 experiment

    All probes used CreateFileW with FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE (7), OPEN_EXISTING (3), and FILE_FLAG_BACKUP_SEMANTICS (0x02000000). Handles were immediately closed; no content or ACL writes were performed by the probes.

    For an independent control, we copied Windows PING.EXE into a disposable project-local diagnostic directory, launched that copy with "-n 4 127.0.0.1", and let it exit normally. The copy was then removed.

    Target/state READ_CONTROL + WRITE_DAC (0x00060000) MAXIMUM_ALLOWED (0x02000000)
    Control EXE before launch Success Success
    Same control EXE while running Success Error 32
    Same control EXE after normal exit Success Success
    Actual active node_repl.exe Success Error 32

    This isolates running-image state and desired access as sufficient to reproduce the sharing violation on this host, without stopping Codex helpers or changing their permissions.

    Version-pinned source correlation

    The inspected rust-v0.162.0-alpha.2 source follows this path:

    1. setup_provisioning.rs calls ensure_codex_app_runtime_paths_readable during refresh.
    2. setup_provisioning/setup_runtime_bin.rs calls grant_read_execute_aces with inheritance=0 for regular files.
    3. acl.rs opens the target with MAXIMUM_ALLOWED before the ACL/no-op check, with the exact error context seen in the log.

    Sources:

    These are local reproduction plus version-pinned source evidence, not a debugger/hash match of the installed setup helper or an end-to-end test of a patched build.

    Workaround verification and requested fix

    A single invocation using the same bundled CLI with:
    codex.exe sandbox -c 'windows.sandbox="unelevated"' -- powershell.exe -NoProfile -Command Get-Location
    successfully launched PowerShell; the diagnostic invocation also read a project-local JSON file. Persistent configuration was not changed. This does not establish recovery of every desktop tool or PPT parsing.

    Please provide a fixed elevated-sandbox build with regression coverage for active EXE/DLL targets while preserving the child-ACL propagation guarantees intended by #49690. Inspection should avoid requesting unnecessary file-content access; a blanket ACL reset or skipped validation is not proposed.

    No credentials, private project paths, account/device identifiers, raw logs, or chat transcripts are included.

  6. KazxMartin commented on Oct 7, 2026

    @KazxMartin

    Follow-up to my reproduction above: we are keeping windows.sandbox = "elevated" and are not replacing bundled executables or modifying ACLs

    Could you provide an official signed installer/package for the previous working Windows desktop version, or a supported in-app rollback procedure?

    On this installation the Windows package updated from 26.930.7945.0 to 26.1002.6548.0; the current app reports 26.1002.51308, build 13417
    The previous sandbox logs showed successful operation with command runner 0.160.1

    We need to resume Browser Use / Computer Use in the existing desktop chat and authenticated browser tabs, not merely run an older standalone CLI separately

    Please clarify:

    • Whether rollback can preserve existing chats, settings and authentication
    • Whether it restores a compatible bundled CLI/runtime/helper set while retaining elevated isolation
    • How to avoid immediate reinstallation of the affected build and subsequently update to the fixed release
    • Whether the rollback announced at https://status.openai.com/incidents/01M4ADHMMBK7K92NJFJ0DXRYJM also addresses this runtime sharing violation, or only the separate issue creating new Work threads

    We understand that the status incident does not currently confirm a fix for this sandbox failure
    An official previous installer or supported rollback would allow work to resume without weakening isolation or manually swapping signed components

  7. doc66666 commented on Oct 7, 2026

    @doc66666

    Consolidating my report #51613 here after reviewing the duplicate suggestion. This adds a measured end-to-end recovery to the access-mask evidence already collected in this issue.

    Verified installation and failure

    • Windows 11 Home 24H2, build 26100.4946, x64.
    • App updater: 26.1002.51308, build 13417; Windows package reported by doctor: 26.1002.6548.0.
    • Bundled core: 0.162.0-alpha.2; setting: windows.sandbox = "elevated".
    • Runtime: cua_node/2c9e75c4e9c71beb.
    • An actual Windows reboot was verified. A subsequent elevated-sandbox whoami still failed before execution with helper_unknown_error: setup refresh had errors.
    • The fatal log target was the active node_repl.exe, with open ACL target for root-only update and Windows error 32. Loaded runtime DLLs produced the same failure.

    Controlled access-mask comparison

    Against the same active node_repl.exe and VCRUNTIME140_1.dll, with share read/write/delete, OPEN_EXISTING, and FILE_FLAG_BACKUP_SEMANTICS:

    Desired access Result
    READ_CONTROL Success
    READ_CONTROL + WRITE_DAC Success
    MAXIMUM_ALLOWED Error 32

    Temporarily denying only FILE_WRITE_DATA + FILE_APPEND_DATA (mask 0x6) to the current user on node_repl.exe made the MAXIMUM_ALLOWED open succeed. The original ACL was restored after this initial controlled comparison.

    The matching published source contains the relevant branch at rust-v0.162.0-alpha.2 acl.rs. The installed helper has not been debugger- or hash-matched to that source.

    Measured elevated-sandbox recovery

    After backing up original security descriptors, I applied that same narrow, non-inheriting current-user deny ACE to six runtime files with sharing conflicts: node_repl.exe, node.exe, codex-computer-use-swift.exe, VCRUNTIME140_1.dll, VCRUNTIME140.dll, and MSVCP140.dll. Read, execute, and ACL-management access were retained; file contents were not modified.

    The configuration remained elevated. Subsequent actual tests showed:

    • Commands ran as <MACHINE>\CodexSandboxOffline.
    • Creating, reading, and deleting files inside the allowed working directory succeeded.
    • A fresh write outside that directory was denied, while the host could write to the same location.
    • The bundled Node runtime executed inside the elevated sandbox.
    • Direct external TCP access that worked from the host returned EACCES inside the sandbox. Loopback remained reachable; this is not a claim of complete network isolation.
    • codex doctor reported sandbox.helpers.status=ok, backend=elevated, provisioning=complete. Setup logs recorded errors=[].

    This is a reversible local workaround, not a general recommendation or an upstream fix. It can interfere with in-place runtime updates, and replacing the runtime may require reapplication. ACL backups and a rollback script were retained.

    Reliability needs priority

    I appreciate the new features and fast iteration, but shipping new capabilities while recurring Windows sandbox failures block basic development work is unacceptable. Reliability is a core feature too. Users should not have to diagnose Win32 handle access or manually alter runtime permissions just to keep working after an update.

    Please prioritize a supported elevated-sandbox fix and regression coverage for active EXEs and loaded DLLs. Any fix should preserve deny ACEs and the non-inheriting directory-update guarantees intended by #49690, rather than bypass validation or apply a blanket ACL reset.

    I will close #51613 as a duplicate after linking this evidence. Closing that report does not mean the upstream bug is resolved.

    Personal paths, account/device identifiers, SIDs, credentials, private project data, and full transcripts are omitted.

  8. erson commented on Oct 7, 2026

    @erson

    Consolidating #51623 here. The access-mask diagnosis in this thread matches what I found. This comment adds a tested source fix with a regression test.

    Proposed fix: erson@2bd3cd5 (2 files, codex-rs/windows-sandbox-rs/src/acl.rs and acl_tests.rs). The repository does not accept external PRs, so I am linking the commit instead.

    • ensure_allow_mask_aces_with_inheritance_impl reads the DACL through fetch_dacl_handle (READ_CONTROL) for both root-only and inheriting grants.
    • It opens the MAXIMUM_ALLOWED handle only when at least one ACE must be written. The no-propagation behavior from Preserve PowerShell relative paths in the elevated Windows sandbox #49690 for root-only updates is unchanged. An up-to-date ACL, which is the case for these runtime files, is never opened for write.
    • New test noninheriting_grant_skips_open_for_write_when_ace_is_present: it holds a read-only-sharing handle on the target, like a loaded image. On main it fails with the exact production error (open ACL target for root-only update … (os error 32)). With the fix it passes. noninheriting_read_attributes_preserve_unprotected_child_dacl still passes, and the set of other failing tests in cargo test -p codex-windows-sandbox is unchanged on my machine.

    End-to-end, Windows 11 26200, app 26.1002 open with the computer-use helper holding the runtime files. The baseline is the bundled 0.162.0-alpha.2. The fix is a local build of main with the commit.

    Test Baseline Fix
    codex sandbox -P :workspace: cmd read/write, powershell.exe and pwsh.exe write/read 4/4 fail, setup refresh had errors 4/4 pass, errors=[]
    Agent turn: codex exec -s workspace-write -c windows.sandbox="elevated" -c features.prefer_mxc=false, same model on both builds Failed to create unified exec process: helper_unknown_error: setup refresh had errors, no file written errors=[], probe file written and read back

    The fix also removes the non-fatal failed to grant non-inheriting read-attributes ACE on user profile … (os error 32) warning.

    Limits:

    • The agent-turn run paired the released codex-code-mode-host.exe with the local codex.exe, because the V8 prebuilt could not be downloaded.
    • On my machine the app later switched to MXC (prefer_mxc), which does not use this code path. I could not test the fix inside the app itself.
  9. Tong-tastsy commented on Oct 7, 2026

    @Tong-tastsy

    Additional affected installation: Windows 11 build 22631; bundled 0.162.0-alpha.2 fails, separate npm 0.154.0 executes a read-only probe

    Submitted at the affected user's explicit request. This adds an independent reproduction and an older-CLI comparison to this existing report rather than opening another duplicate. Personal paths and identifiers are redacted. The observations below are from this user's logs, screenshots, and reported test results, not from the other reporters' machines.

    Environment

    • Observed October 7, 2026.
    • Windows 11, OS version 10.0.22631, x64, zh-CN.
    • ChatGPT-account authentication; subscription tier not verified for this report.
    • Desktop-bundled executable reports codex-cli 0.162.0-alpha.2.
    • Exact desktop app package version was not collected; it should not be inferred from the bundled CLI version.
    • Bundled executable directory in the captured log: %LOCALAPPDATA%\OpenAI\Codex\bin\979a96ce184041d1.
    • Runtime directory: %LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\2c9e75c4e9c71beb.
    • Windows sandbox setting was restored to elevated after an unsuccessful unelevated test.
    • The user first noticed the failure after a Windows update. This is temporal context, not proof that the Windows update caused it.

    Desktop reproduction and actual result

    1. Open a local project with the elevated Windows sandbox.
    2. Create or resume a thread and request a harmless command, cmd.exe /d /c echo CODEX_SANDBOX_OK.
    3. Thread creation/resumption fails while loading instructions, before the requested command runs:
    failed to load AGENTS.md instructions for environment 'local':
    fs sandbox helper failed with status exit code: 1:
    windows sandbox failed: helper_unknown_error: setup refresh had errors
    

    The same failure occurs in a newly created empty project and new thread, not just the original project/thread. The captured sandbox log explicitly includes the new probe directory and the same DLL error.

    Relevant log excerpt

    Paths are anonymized; the Chinese Windows error text is retained. It means that another process is using the file.

    [2026-10-07T07:13:32.883966300+00:00]
    runtime read/execute validation failed:
    validate runtime read/execute access on
    %LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\2c9e75c4e9c71beb\bin\node_modules\@oai\sky\bin\windows\swift\x64\VCRUNTIME140_1.dll:
    open ACL target for root-only update:
    另一个程序正在使用此文件,进程无法访问。 (os error 32)
    
    [2026-10-07T07:13:32.886130100+00:00]
    setup error: setup refresh had errors
    
    [2026-10-07 16:13:32.889 codex.exe]
    setup refresh: exited with status ExitStatus(ExitStatus(1))
    

    setup_error.json contained:

    {"code":"helper_unknown_error","message":"setup refresh had errors"}

    Manual sandbox setup --elevated --current-user reported success. Separate provisioning logs show WFP setup succeeded and setup provisioning binary completed; subsequent per-task refreshes still failed. doctor reported sandbox.helpers.status=fail with the generic structured provisioning failure.

    Process observations and unsuccessful recovery attempts

    • Process Explorer identified codex-computer-use-swift.exe as loading the exact DLL above.
    • After a normal desktop-app exit, that DLL search result disappeared.
    • With the desktop app open, stopping just the Swift helper did not restore execution. It appeared again when the user retried creating a thread.
    • Disabling Computer Use in the available settings page did not prevent the helper from being present. A Computer Use plugin/MCP entry was not available in this user's UI.
    • Reinstalling the desktop application did not resolve the failure.
    • Moving the CUA runtime to a backup location did not resolve it. The later report again contains the runtime path above; it does not establish whether the earlier move completed fully or the runtime was recreated.
    • unelevated was not a usable fallback: it explicitly refused to run because it could not enforce the active deny-read restrictions. The configuration was returned to elevated; those restrictions were not intentionally bypassed.

    CLI comparison

    The desktop application was normally closed for the standalone CLI tests. Both used the same Windows user and the same dedicated probe directory. The directory was initialized as a Git repository during troubleshooting.

    Bundled 0.162.0-alpha.2: failed. The CLI reached model/tool execution using the configured gpt-6-luna model, approval: never, and sandbox: read-only. Actual command-tool calls failed before the process started:

    Failed to create unified exec process:
    helper_unknown_error: setup refresh had errors
    

    The post-run process-inspection command was accidentally concatenated with another PowerShell command and did not execute. Consequently, this test does NOT establish whether the Swift helper was absent throughout the CLI run, or whether that run failed on the same underlying file. A new low-level log for that CLI attempt was not captured.

    Separate npm @openai/codex@0.154.0: succeeded on the minimal probe. The user ran the following after changing to the probe directory:

    npx -y @openai/codex@0.154.0 --model gpt-5.6-luna --ask-for-approval never exec --skip-git-repo-check --sandbox read-only "Actually execute cmd.exe /d /c echo CODEX_SANDBOX_OK and return the real command output. Do not modify any files."

    The user reported actual execution output, not just the model repeating the requested text:

    exec
    cmd.exe /d /c echo CODEX_SANDBOX_OK
    
    CODEX_SANDBOX_OK
    

    Comparison limitations: This was not a fully controlled version-only A/B test. The old client initially rejected the configured gpt-6-luna model, so the successful test explicitly selected gpt-5.6-luna. Installation location, client configuration interpretation, and runtime/process state may also differ. The successful minimal read-only probe does not verify all sandbox restrictions, project writes, or desktop functionality. It supports investigating a client/runtime regression but does not identify the introducing commit or prove that all Windows permissions are healthy.

    Historical October 5 logs also show repeated successful setup refreshes with errors=[] while using codex-command-runner-0.155.0-alpha.9.2.exe. These are historical observations, not an identical-environment control.

    Requested resolution

    Please investigate the runtime ACL validation path for loaded DLLs and provide a supported desktop fix or recovery that preserves sandbox protections, configuration, project files, and conversation history. Please surface the underlying file and Windows error in the UI rather than only helper_unknown_error.

    The access-mask diagnosis and proposed patch discussed by other reporters have not been independently tested on this user's machine. No claim is made here that an upstream fix has shipped.

    Only this sanitized summary and necessary log excerpts are submitted. Full diagnostic files, private project contents, chat transcripts, session IDs, usernames, SIDs, credentials, and auth.json are not attached.

  10. cuiqian34-tech commented on Oct 7, 2026

    @cuiqian34-tech

    Adding another affected Windows installation, observed October 7, 2026.

    Environment:

    • Windows package: OpenAI.Codex, version 26.1002.6548.0
    • Helper: %LOCALAPPDATA%\OpenAI\Codex\bin\979a96ce184041d1
    • Runtime: %LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\2c9e75c4e9c71beb

    Reproduction: request an ordinary PowerShell Get-Location through the desktop app. It fails before process creation with "helper_unknown_error: setup refresh had errors". Expected: sandbox setup completes and the command runs.

    The sandbox log reports "runtime read/execute validation failed" for the runtime's bin\node_repl.exe; earlier entries also identify node.exe. The error chain includes:
    "open ACL target for root-only update: 另一个程序正在使用此文件,进程无法访问。 (os error 32)"
    The Chinese message means another process is using the file.

    A full app exit/reopen, Windows app Repair, and narrowly terminating the two identified node_repl.exe processes did not restore execution. Process Explorer showed executable image mappings, but no third-party File handle was identified. This does not establish which process, if any, holds an exclusive file handle.

    These observations are consistent with the MAXIMUM_ALLOWED explanation discussed here and in #51623. However, no controlled access-mask comparison was performed on this installation, and the installed helper was not matched to the public source. The cause is therefore not independently proven here. No manual ACL changes, sandbox weakening, data clearing, or self-built helper installation were performed.

    Please identify a fixed, officially signed desktop/helper version, or a supported recovery procedure preserving sandbox protections, configuration, projects, and conversation history. Updating a standalone CLI would not establish that the desktop app's bundled helper has been replaced. The duplicate closure of #51623 does not establish that a desktop fix has shipped.

  11. 101 remaining items

  12. rjjelley commented on Oct 9, 2026

    @rjjelley

    Same failure here, and I can confirm the exact cohort: Windows desktop MSIX 26.1002.7124.0, runtime cua_node\3dd31cfff853001c, sandbox elevated.

    Error: "Failed to create unified exec process: exec-server rejected request (-32603): helper_unknown_error: setup refresh had errors"

    Sandbox log: setup fails "validating runtime read/execute access" and "opening an ACL target for a root-only update" on ...\runtimes\cua_node\3dd31cfff853001c\bin\node_repl.exe, "The process cannot access the file because it is being used by another process. (os error 32)". Setup exits status 1. A separate user-profile error 32 says setup is continuing (non-fatal), consistent with the diagnosis in this thread.

    Last success 2026-10-09 09:00 ET; first failure 11:52 ET the same day, after the Oct 7 update.

    Tried without success: app restart/reconnect, fresh delegated task, full Windows restart, Resource Monitor Associated Handles search for node_repl.exe (no matches, inconclusive). No processes killed, no files deleted, no ACL changes, no protections disabled.

    This matches #51601's root cause exactly. Question for the team: which upcoming desktop build will bundle the PR #51822 fix (CLI 0.163.0-alpha.2)?

  13. apdmid commented on Oct 9, 2026

    @apdmid

    Request for official status and a Windows Desktop release ETA

    I'm requesting a clear status update for this regression as an affected Windows Codex user. This is blocking active development across multiple local projects, not just one repository.

    Observed failure: Local PowerShell commands fail before execution with helper_unknown_error: setup refresh had errors. The associated Windows sandbox report identifies a sharing violation (os error 32) on the bundled cua_node/.../node_repl.exe. Chrome/Computer Use initialization is also affected. Repeated Codex restarts have not restored access.

    I understand that PR #51822 has been merged and that its correction is included in a newer CLI prerelease. However, that does not establish that the fix has reached the affected Windows Desktop app.

    Could the Codex/Desktop release team please provide:

    1. Acknowledgment and status: Is the Windows Desktop elevated-sandbox regression tracked as an active, user-impacting incident, separate from the resolved thread-creation incident?
    2. Fixed version and rollout: What is the first Windows Desktop/MSIX/Store build containing Avoid sharing violations when repairing Windows runtime ACLs #51822? Has rollout begun? If not, what is the expected release window or next update milestone?
    3. Safe interim recovery: Is there an officially supported workaround that preserves existing chats, projects, approval controls and sandbox protections? Some users report sandbox = "unelevated" works, but it reduces isolation, which matters for projects with production credentials.
    4. Verification: What test should affected users run after updating to confirm that both ordinary sandboxed PowerShell execution and Chrome/Computer Use are repaired?

    A brief response in this issue or a linked public status notice would help affected users decide whether to wait or use a documented workaround. Thank you.

  14. v-bohoslov commented on Oct 9, 2026

    @v-bohoslov

    Data point: 26.1007.2314.0 fixes the runtime failure. The remaining profile warning comes from Codex's own service pin.

    1. Runtime-file failure fixed for me after the Store update.

    • Updated OpenAI.Codex from 26.1002.7124.0 to 26.1007.2314.0. The bundled CLI is codex-cli 0.162.0-alpha.17.2; codex-windows-sandbox-setup.exe SHA256 20AFDF07E34A879A78F3E35CC50E858DE9931DB549D8256228E119BF5A81CE20, which contains the Avoid sharing violations when repairing Windows runtime ACLs #51822 string inspect ACL target.
    • Ran 2 fresh elevated launches (windows.sandbox=elevated, :workspace) with Desktop open and 21 runtime processes loaded (node_repl.exe×8, node.exe×12, codex-computer-use-swift.exe×1).
    • Both logged setup refresh: … errors=[] and setup binary completed. The child ran as the CodexSandboxOffline SID. Writes to the workspace and %TEMP% were allowed; writes to %USERPROFILE%\.codex were denied.
    • Note: the rust-v0.162.0 stable tag does not contain Avoid sharing violations when repairing Windows runtime ACLs #51822 (its acl.rs matches alpha.17.1). The fix is in alpha.17.2 (cherry-pick e9cb8a596f), alpha.19+, and 0.163.0-alpha.*.

    2. The non-fatal warning that remains, and its actual cause

    failed to grant non-inheriting read-attributes ACE on user profile C:\Users\<user>: open ACL target for root-only update: … (os error 32); continuing setup
    

    28 of 28 attempts failed on this machine, and no log has ever contained a granted … line. #51822 intentionally kept MAXIMUM_ALLOWED for directories, and the holder is Codex itself:

    • windows-sandbox-service/src/ipc/home.rs pin_existing_ancestors / pin_directory opens every ancestor of CODEX_HOME (C:\, C:\Users, C:\Users\<user>, .codex) with FILE_READ_ATTRIBUTES | FILE_TRAVERSE and share READ | WRITE, deliberately without FILE_SHARE_DELETE. package_lifecycle.rs keeps those handles for the lifetime of the installation.
    • FILE_TRAVERSE (0x20) is share-tracked. For a full-control owner, MAXIMUM_ALLOWED resolves to 0x1F01FF, which includes DELETE. So the acl.rs root-only open always hits ERROR_SHARING_VIOLATION while CodexSandboxService.OpenAI.Codex is running. Elevation does not bypass this.
    • Live check: NtQueryInformationFile(FileProcessIdsUsingFileInformation) on %USERPROFILE%\.codex returns only codex-windows-sandbox-service.exe. A MAXIMUM_ALLOWED or DELETE open fails with 32, and READ_CONTROL|WRITE_DAC succeeds. Any process whose cwd is the profile has the same effect; here the WireGuard UI is also a holder.
    • The open happens before dacl_allow_mask_needs_refresh, so a pre-existing ACE would not silence the warning either. The check-before-open idea in Windows elevated sandbox: root-only ACL grants open loaded runtime files for write (os error 32), so every setup refresh fails #51623 / 2bd3cd5 still opens MAXIMUM_ALLOWED whenever the ACE is actually missing.

    3. Why "just drop DELETE" is not a fix (tested on scratch trees only)

    • SetSecurityInfo through a handle that holds DELETE (MAXIMUM_ALLOWED, FILE_ALL_ACCESS, RC|WD|DELETE) does not propagate.
    • Through READ_CONTROL|WRITE_DAC, alone or with any other non-DELETE rights, it re-propagates over the whole subtree: it removes stale inherited ACEs, converts legacy ACEs to ID, and turns a D:P root into D:PAI. It returns 0 either way. On a real profile that is about 7e5 objects.
    • Propagation is also skipped when a separate DELETE handle, or a handle without FILE_SHARE_READ, is open on the directory. That is consistent with MARTA reopening the directory to walk it and silently skipping on a sharing violation. This is inferred, not traced.
    • So the comment "MAXIMUM_ALLOWED suppresses propagation" relies on an undocumented side effect, and the access that provides it is exactly what conflicts with the service pin.

    4. Suggested fix

    For root-only directory grants:

    • Open READ_CONTROL | WRITE_DAC (share R|W|D, FILE_FLAG_BACKUP_SEMANTICS). These rights are not share-tracked, so the open succeeds while the pins exist.
    • Read the DACL through that handle, and return Ok(false) if no entries are needed.
    • Write with SetKernelObjectSecurity / NtSetSecurityObject, which never propagates. Preserve SE_DACL_PROTECTED/SE_DACL_AUTO_INHERITED from the current control and set SE_DACL_AUTO_INHERIT_REQ. Without REQ, a D:PAI root becomes D:P.

    I checked this on scratch trees while holding a handle identical to the service's pin. The write succeeded, the children were byte-identical before and after, and the root SDDL matched what the current MAXIMUM_ALLOWED path produces.

    Suggested regression test: extend noninheriting_read_attributes_preserve_unprotected_child_dacl to hold the parent open like pin_directory does (FILE_READ_ATTRIBUTES | FILE_TRAVERSE, share R|W), then assert that the grant succeeds and the child DACL is unchanged. On main today it should fail with os error 32.

    Impact. Non-fatal. With the default C:\Users ACL (Everyone and Users get 0x1200a9), sandboxed PowerShell keeps its cwd and resolves relative paths under the profile, so the ACE is not needed. I verified this with real launches. On machines where the profile's parent is not listable (the layout in windows_elevated_powershell_preserves_relative_paths), the #49690 fix can never take effect while the service is installed.

    Related: #49690, #51822, #51896, #51623.

  15. Yo4v commented on Oct 9, 2026

    @Yo4v

    Confirmed fixed for me in Windows Codex Desktop 26.1007.21434 (build 13901, production).

    After updating from 26.1002.52244 (build 13536), with the elevated Windows sandbox unchanged:

    • Ordinary sandboxed PowerShell execution succeeds with exit code 0.
    • The process runs as CodexSandboxOffline.
    • Computer Use / Node REPL initializes successfully.
    • The previous helper_unknown_error: setup refresh had errors / Windows error 32 no longer reproduces while runtime processes are active.

    codex --version reports codex-cli 0.162.0-alpha.17.2, so the working repair appears to have arrived through the updated Desktop sandbox helper rather than requiring the bundled CLI version to be alpha.20.

    No sandbox downgrade, ACL modification, manual executable replacement, or other workaround was used.

    This is one-machine confirmation rather than proof that every affected installation or rollout cohort is repaired. Other affected users should retest after receiving this version.

  16. RFinal3 commented on Oct 9, 2026

    @RFinal3

    Follow-up to my earlier report: after restoring [windows] sandbox = "elevated", restarting, and updating the Windows desktop app to 26.1007.21434, my dot successfully started a fresh local Codex task on October 9, 2026. That task ran Get-Location successfully with exit code 0, without a retry or permission escalation.

    The earlier setup-refresh failure did not recur in this test. This is a limited observation; we did not independently inspect the effective sandbox implementation or perform broader sandbox validation.

    Written and posted by Luna, my AI assistant, with my explicit authorization.

  17. Kadeluxe commented on Oct 9, 2026

    @Kadeluxe

    Fixed in 26.1007.21434.

  18. 564311742-spec commented on Oct 9, 2026

    @564311742-spec

    Hi @Yo4v, after updating to the version you mentioned, are browser and mouse controls both working normally now? Did you do anything besides updating and restarting?

  19. 564311742-spec commented on Oct 9, 2026

    @564311742-spec

    Also asking @v-bohoslov @RFinal3 @Kadeluxe: on the versions you reported, are actual browser and mouse operations working normally now? Were any additional steps needed beyond the updates, restarts, or settings you already mentioned?

  20. Yo4v commented on Oct 10, 2026

    @Yo4v

    @564311742-spec Yes. On my machine, Browser Use and actual click controls are working normally after the update. I have now verified an end-to-end browser action: Codex opened issue #51601 and clicked the codex breadcrumb, successfully navigating to the repository page.

    No additional recovery steps were needed beyond installing Windows Codex Desktop 26.1007.21434 (build 13901) and allowing the app to restart. The elevated Windows sandbox remained unchanged. I did not modify ACLs, replace binaries, clear runtime folders, or apply any other workaround. No Windows reboot was needed after installing this fixed version.

    This confirms the in-app browser/control path on my installation. I have not separately tested control of an existing authenticated Chrome tab.

  21. amanojak commented on Oct 10, 2026

    @amanojak

    Follow-up to my earlier report: #51601 (comment)

    Retested on the same Windows PC on October 10, 2026. The app's About screen reports version 26.1007.21434.

    Five separate PowerShell requests through the normal use_default sandbox path returned timestamps and exit code 0:

    • 11:03:32 UTC — exit 0
    • 11:04:12 UTC — exit 0
    • 11:04:13 UTC — exit 0
    • 11:04:14 UTC — exit 0
    • 11:04:15 UTC — exit 0

    The previous pre-launch helper_unknown_error: setup refresh had errors did not recur in these attempts. The configured Windows sandbox remained elevated; no sandbox settings were changed for these tests.

    Scope and limitations: the sandbox log inspected did not contain entries matching these attempts, so I cannot confirm that the original setup-refresh/runtime ACL-repair path was exercised. This demonstrates successful basic command execution in these five attempts, not full recovery or attribution to a specific PR. Browser/Computer Use and Node REPL were not retested as part of this verification.

    Personal identifiers and local paths are omitted; no raw logs or screenshots are attached. Thank you for the work on this issue.

  22. bk74k5b5j2-arch commented on Oct 11, 2026

    @bk74k5b5j2-arch

    Windows Codex — file editing restored after sandbox configuration change

    Issue: Codex Desktop on Windows suddenly stopped creating and modifying local project files, despite having permissions.

    Configuration before:

    • sandbox_mode = "danger-full-access"
    • [windows] sandbox = "elevated"

    Successful workaround:

    • Changed sandbox_mode to "workspace-write".
    • Changed [windows] sandbox to "unelevated".
    • Completely restarted Codex.

    Result: Codex regained the ability to create and modify local files. Reinstallation was not required. Existing projects and conversations were preserved.

    Important: Both settings were changed together, so the exact parameter responsible for restoring functionality has not been isolated.

    Please investigate this Windows sandbox regression and provide a permanent fix that does not require switching away from elevated sandbox isolation.

  23. Kadeluxe commented on Oct 11, 2026

    @Kadeluxe

    @564311742-spec yes, it works.

  24. hanero-heiko commented on Oct 11, 2026

    @hanero-heiko

    Independent reproduction from a Windows 10 workstation, plus a release check showing which builds contain the fix from #51822.

    Environment

    • Windows 10 Pro 10.0.19045 x64
    • Codex Desktop (MSIX) OpenAI.Codex 26.1002.7124.0
    • App-managed CLI codex-cli 0.162.0-alpha.2 (%LOCALAPPDATA%\OpenAI\Codex\bin\<hash>\, binaries dated 2026-10-08, installed by the app's self-update on 2026-10-11)
    • Previous app-managed CLI 0.160.0: sandbox logs from 2026-10-08/09 show errors=[], no error 32
    • [windows] sandbox = "elevated", trusted local NTFS workspace, sandbox service running

    Symptom (Desktop): every local command fails on the first call — Failed to create unified exec process: helper_unknown_error: setup refresh had errors, Node tool: windows sandbox failed: helper_unknown_error: setup refresh had errors → trusted Node process exited unexpectedly; kernel reset. Reading an attached file fails the same way. 96 occurrences in sandbox.2026-10-11.log in one day.

    Sandbox log (user name redacted):

    [... codex.exe] setup refresh: spawning ...\bin\<hash>\codex-windows-sandbox-setup.exe (cwd=D:\claude, payload_len=4312)
    [2026-10-11T20:00:43.246678800+00:00] runtime read/execute validation failed: validate runtime read/execute access on C:\Users\<user>\AppData\Local\OpenAI\Codex\runtimes\cua_node\3dd31cfff853001c\bin\node_repl.exe: open ACL target for root-only update: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (os error 32)
    [2026-10-11T20:00:43.258954600+00:00] setup refresh: processed 3 write roots (read roots delegated); errors=["runtime read/execute validation failed: ... (os error 32)"]
    [2026-10-11T20:00:43.261581100+00:00] top-level error: setup refresh had errors
    [... codex.exe] setup refresh: exited with status ExitStatus(ExitStatus(1))
    

    Desktop app log, same second: MCP server stderr (...\node_repl.exe): windows sandbox failed: helper_unknown_error: setup refresh had errors → node_repl kernel exited unexpectedly → kernel_status: exited(code=1).

    Minimal CLI reproduction (no model call):

    1. Quit Codex Desktop completely (no ChatGPT.exe, no node_repl.exe).
    2. codex sandbox cmd /c "cd && echo SANDBOX-OK" → exit 0, setup refresh: processed 0 write roots (read roots delegated); errors=[], setup binary completed, setup_error.json removed.
    3. Start node_repl.exe manually and keep it running → same command exits 1 with the os error 32 line above, setup_error.json recreated.
    4. Additionally granting an explicit read/execute ACE for the sandbox capability SID on node_repl.exe changes nothing (exit 1; ACE reverted afterwards, DACL byte-identical). After the successful run in step 2 the DACL of node_repl.exe was unchanged, i.e. the "root-only update" writes nothing here but still needs a write handle.
    5. Win32 check on the running node_repl.exe: GENERIC_READ|FILE_EXECUTE OK, WRITE_DAC OK, GENERIC_WRITE / MAXIMUM_ALLOWED → error 32 — consistent with the diagnosis in this thread and with Avoid sharing violations when repairing Windows runtime ACLs #51822.

    In the Desktop app node_repl.exe is started at thread start, before the first command, so the validation never succeeds there. HTTP MCP servers are not affected (a streamable-HTTP MCP read_file from the same Desktop thread succeeded while every local exec failed).

    Which releases contain the fix (#51822, merge commit dd12f892f1b857e5161abd33a2967125b265d550), checked via the GitHub compare API:

    Tag contains dd12f89?
    rust-v0.162.0-alpha.17.2 / alpha.18.1 no (diverged)
    rust-v0.162.0 no (diverged)
    rust-v0.162.1 (Latest) no (diverged)
    rust-v0.163.0-alpha.1 … alpha.5 yes

    So the app-managed 0.162.0-alpha.2 and the current stable 0.162.1 both still lack the fix; it is only in the 0.163.0 pre-releases so far. Nothing was changed on this machine (no ACL edits kept, no sandbox mode change, no manual update) — waiting for a Desktop-delivered build that includes #51822.

  25. HCardenas101 commented on Oct 12, 2026

    @HCardenas101

    Confirming the fix on Windows app 26.1007.21434 (package 26.1007.2314.0), ChatGPT for Business, using the elevated sandbox with a custom permission profile that has deny-read rules. The sandbox log shows the setup refresh completing with errors=[] and 16 deny-read ACLs applied. Commands run in the sandbox, a deny-listed folder is refused, and writes outside the allowed folders require approval. This failed on 26.1002.6548.0 and 26.1002.7124.0.

  26. dyphn1 commented on Oct 15, 2026

    @dyphn1

    Still reproducible on 2026-10-15 when the desktop app is already fixed but the npm CLI is not:

    • Windows 11 Pro 10.0.26200.9457
    • Desktop app: MSIX OpenAI.Codex_26.1007.9446.0_x64__2p2nqsd0c76g0 (newer than the 26.1007.2314.0 package reported fixed above)
    • CLI: npm @openai/codex 0.162.1 (current latest tag), codex exec --sandbox workspace-write (elevated sandbox)

    With the desktop app running, every shell command from the CLI fails with helper_unknown_error: setup refresh had errors. ~/.codex/.sandbox/sandbox.2026-10-15.log:

    runtime read/execute validation failed: validate runtime read/execute access on
    C:\Users\<user>\AppData\Local\OpenAI\Codex\runtimes\cua_node\a9ba6825a525118c\bin\node_repl.exe:
    open ACL target for root-only update: The process cannot access the file because it is being used by another process. (os error 32)
    

    So the CLI's own sandbox setup still tries to repair ACLs on the app-owned shared runtime while the app holds node_repl.exe, which looks like the CLI side not yet having #51822. A separate CODEX_HOME does not isolate it, because the runtime lives under AppData\Local\OpenAI\Codex, not under CODEX_HOME.

    Workaround that works here: quit every ChatGPT.exe and AppData\Local\OpenAI\Codex\* process, then move runtimes\cua_node\<hash> out of runtimes\cua_node\ (renaming it in place is not enough, because the directory is scanned). unelevated did not help in an earlier attempt (cannot enforce split writable root sets).

    Could a stable CLI release carry #51822 (dd12f89)? Running the desktop app and the CLI at the same time is currently not possible on Windows.

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