[Windows][26.730.7989.0] Computer Use fails before app selection with EPERM lstat on Codex runtime
What version of the Codex App are you using (From “About Codex” dialog)?
26.730.7989.0
What subscription do you have?
ChatGPT subscription (exact tier not displayed in Codex App)
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
Summary
After updating the Codex Windows desktop app, Computer Use / Any App fails before it can enumerate or control any desktop application. This is not specific to Claude: a harmless Notepad test fails at the same initialization point.
Exact error (username redacted):
~~~text
EPERM: operation not permitted, lstat 'C:\Users\<redacted>\AppData\Local\OpenAI\Codex'
~~~
The failure happens while importing the bundled @oai/sky package, before list_windows() or any app-specific operation can run.
Impact
- Any App cannot control Claude, Notepad, or any other Windows application.
- No target application is opened or touched.
- Browser/in-app-browser functionality can still work, so the failure is specific to the Computer Use runtime initialization path.
Troubleshooting already completed
- Repaired the Codex app from Windows Advanced options.
- Restarted Codex.
- Rebooted Windows.
- Verified the affected directory exists.
- Verified the signed-in Windows user has Full Control on the directory.
- Retested with a fresh Node REPL kernel.
- Observed bundled Computer Use plugin cache refresh from
26.730.61309to26.730.61639; the same EPERM remains.
The problem started immediately after the Codex desktop update.
Relevant related reports
- #37013: same Codex AppX version and the earlier
26.730.61309Computer Use plugin, but a different Computer Use transport/context failure. - #18861: closely matching Windows sandbox behavior where basic Node runs but
lstat/realpathreturns EPERM. - #23884: plugin/browser diagnostics fail with
EPERM: operation not permitted, lstat 'C:\Users\...'after reinstall.
This looks like a Windows AppContainer/sandbox runtime path regression rather than a target-app permission problem.
What steps can reproduce the bug?
- Install or update Codex Desktop for Windows to
26.730.7989.0. - Enable the bundled Computer Use / Any App feature.
- Start a fresh Codex task and request control of a harmless application such as Notepad.
- The documented initialization runs:
~~~js
if (!globalThis.sky) {
const { sky } = await import("@oai/sky");
globalThis.sky = sky;
}
~~~
- The import fails immediately with:
~~~text
EPERM: operation not permitted, lstat 'C:\Users\<redacted>\AppData\Local\OpenAI\Codex'
~~~
The failure occurs before sky.list_windows() and before any desktop app is selected. Repairing the app, restarting Codex, and rebooting Windows do not resolve it.
What is the expected behavior?
@oai/sky should load successfully, sky.list_windows() should enumerate available windows, and Computer Use should then request/obey normal per-app authorization before interacting with Notepad or another selected application.
A user-level Full Control ACL on the extracted Codex runtime should not still produce EPERM inside the app's own sandboxed Computer Use loader.
Additional information
- Codex AppX:
26.730.7989.0x64 - Windows:
Microsoft Windows NT 10.0.26200.0 x64 - Computer Use plugin observed:
26.730.61309, later26.730.61639after cache refresh - The path and account name above are deliberately redacted.
- Subscription tier is not displayed in the Codex app used for this report.
- Session ID omitted from this public report for privacy; it can be supplied privately if maintainers request it.
Recent issue search shows multiple new Windows/Computer Use reports between Aug 2-5, 2026, including #37013 on the exact same AppX version. This report is separate because the failure occurs even earlier, during the first @oai/sky import.
13 Comments
I have the same issue.
ChatGPT Desktop version: 26.730.61539
Windows 11 Home
Computer Use fails with EPERM before opening any application.
I tested with simple tasks such as:
Nothing opens. No files are created.
I also enabled the Computer Use plugin, granted all requested permissions, and disabled Controlled Folder Access in Windows Security, but the problem persists.
Feedback ID:
no-active-thread-e19fc198-2b09-7013-bfe8-42ca458eb61c
The problem persists after:
Feedback ID:
no-active-thread-e19fc198-2b09-7013-bfe8-42ca458eb61c
I have the same issue on another Windows system.
Codex Desktop version:
26.730.8199.0Windows build:
10.0.26200.8875x64Computer Use plugin:
26.730.61639Before resetting the Workspace, Computer Use failed with:
I then went to Settings > Configuration and ran Reset and install Workspace.
After the reset,
@oai/skyloads successfully, but Computer Use still does not work. Both of these calls now fail:So the Workspace reset changes the failure point, but does not restore Computer Use. The package can now load, while the Windows helper process still cannot start. No applications or windows can be enumerated or controlled.
Feedback ID:
019fd264-415a-7741-919f-e63c3615e235
Additional diagnostic update from the original reporter
I completed a controlled local investigation after the initial report. The original
lstat EPERMcan be moved past with a narrow read-only ACL, but Computer Use still cannot capture or control any window because the bundled Windows helper produces inconsistent internal app ownership.Current environment
26.730.8199.0x6410.0.26200.8875x6426.730.61639cua_node:0.0.6@oai/sky:0.6.2@oai/cua:0.1.1codex doctor: installation reported healthyFailure progression
``
text
``EPERM: operation not permitted, lstat 'C:\Users\<redacted>\AppData\Local\OpenAI\Codex'
ReadAndExecuteACL for the existingCodexSandboxUsersgroup on the Codex runtime root allowed@oai/skyto import. NoEveryonepermission was added and no write permission was granted.list_windows()then failed with:``
text
``EnumWindows failed: The system cannot find the path specified. (0x80070003)
``
toml
`[windows]
sandbox = "elevated"
sandbox_private_desktop = false
list_windows()allowed
andlist_apps()` to enumerate six open windows. It did not restore Computer Use.get_window_state()fails for both a classic Win32 application and a packaged Windows application with a contradictory owner error.Notepad++:
Windows Notepad:
Fresh
list_windows()results andlist_apps()window objects were both tested. Rehydrating withget_window({ id, app })also did not help. The owner printed before and aftercurrent owner isis byte-for-byte identical, yet the compiled helper rejects it.Duplicate app identity evidence
The helper returns two records for the same application identity:
claude, withwindows: []Claude, with the real windowThe two returned app-id strings were checked by character count, UTF-8 byte count, and raw bytes. They are 100% identical ASCII strings. There is no hidden Unicode, path-prefix, slash, case, or normalization difference. The mismatch therefore appears to be in an internal identity variant/tag that is not shown in the formatted error.
Process, account, and desktop evidence
Observed process chain:
Direct Win32 checks produced:
EnumWindowsas the interactive user: succeeds and enumerates approximately 170 windows.EnumWindowsinside the sandbox account: returns false, zero windows,GetLastError() = 5(Access denied).OpenInputDesktop("Default")plusEnumDesktopWindowssucceeds and enumerates approximately 129 windows.sandbox_private_desktop = false, the helper can list windows but app identity degrades toprocess:<path>, duplicate app records appear, and state capture still fails.This makes the issue reproducible independently of Claude and independently of packaged apps: Notepad++ fails in the same way.
Sandbox mode matrix
| Config | Helper identity/result | Filesystem sandbox |
|---|---|---|
|
sandbox = "elevated"| helper runs asCodexSandboxOffline; enumeration can be made to work, but app ownership is inconsistent | enforced ||
sandbox = "unelevated"| helper spawn fails withEPERMbefore Computer Use starts | enforced |So
unelevatedprovides the desired interactive-user identity but cannot launch the helper.elevatedlaunches it under the separate sandbox identity, where app resolution/ownership breaks.Native-pipe investigation
The runtime configuration contains
SKY_CUA_NATIVE_PIPE=1and a live named pipe is created by ChatGPT. However:@oai/*Windows runtime file references or readsSKY_CUA_NATIVE_PIPEnode_repl.exeorcodex-computer-use.exe@oai/skyWindows target contains only the direct helper transportcreate_client.jsconstructs that direct transport and ignores transport configuration@oai/cuadoes not select another transport;cua.computerresolves to the sameskyclientcodex-command-runnersandbox transitionIn this installed build, ChatGPT creates and advertises a privileged native pipe, but the bundled Windows JS client does not appear to consume it.
Safety and rollback state
No executable was patched, the compiled owner check was not disabled, ChatGPT was not run as Administrator, no
EveryoneACL was granted, and filesystem sandbox enforcement was verified. The temporarysandbox_private_desktop = falsesetting does not restore control and will be rolled back to restore private-desktop isolation.Likely product-level fix
A safe fix appears to require one or both of the following inside the bundled runtime:
@oai/skyclient to the existing privileged native-pipe bridge so app/window discovery occurs in the correct interactive context while input remains policy-controlled.Regression tests should include state capture and one authorized input against both Windows Notepad and Notepad++ while the helper is launched through the real Codex sandbox path.
At present,
list_apps()/list_windows()can be made to work partially, butget_window_state()and all practical app control remain unusable.I can reproduce the same issue on Windows.
Computer Use plugin observed:
Primary error:
EPERM: operation not permitted, lstat
'C:\Users\<redacted>\AppData\Local\OpenAI\Codex'
The failure occurs before Computer Use can enumerate applications or windows.
Additional observations and troubleshooting:
sky.list_apps()previously failed withspawn EPERM.CreateProcessAsUserW failed: 5.C:\Users\<redacted>\AppData\Local\Microsoft\WindowsApps\pwsh.exe.pwshnow resolves to:
C:\Program Files\PowerShell\7\pwsh.exe.C:\Windows\System32\cmd.exe.lstatEPERM on the Codex runtime directory still remains,so replacing the Store PowerShell did not resolve the Computer Use failure.
Test-Path,Get-Item, andicaclsall succeed externally.Skills 1, but do not displaythe documented
MCP servers 1 / Computer-usesection.This appears consistent with a Windows Codex sandbox/runtime regression rather
than a normal NTFS permission problem or a target-application permission issue.
I can provide additional sanitized logs if needed.
Related independent reproduction from another Windows task: with Codex 26.730.8199.0, Computer Use plugin 26.730.61639, and @oai/sky 0.6.2, a request to open NetEase Cloud Music failed on the first Computer Use attempt with
spawn EPERM. Retrying and resetting did not recover app/window enumeration;sky.list_apps()andsky.list_windows()remained unusable. This looks consistent with a Windows helper/runtime initialization failure, although the observed error was spawn EPERM rather than lstat EPERM.I can reproduce this exact failure on another Windows configuration:
Computer Use worked before the automatic update from Codex 26.727.6591.0. After the update, both
sky.list_windows()andsky.launch_app({ app: "winword.exe" })fail immediately withspawn EPERM, before any desktop window or application can be enumerated or controlled.Troubleshooting already completed without resolving it:
cua_noderuntime from scratch.This confirms the regression also affects the stable Windows 10 22H2 line, not only Windows 11/Insider builds.
I was able to restore Computer Use on one affected Windows installation, and I wanted to share the result in case it helps narrow this down.
I don't have a programming or software engineering background. I'm an ordinary ChatGPT/Codex user. I investigated this together with my AI assistants, who helped me structure the diagnostics, compare contexts, inspect permissions, and test the repair.
Environment
26.803.5235.0x64codex-cli 0.147.0-alpha.6.526.803.41515@oai/sky:0.6.2cua_node:0.0.6/20260723162306-088049353ddc, Windows x6424.14.0Initial symptoms
Computer Use was only partially functional:
The user-facing error was:
Restarting the desktop app and using a fresh task did not initially resolve it. This external symptom looked similar to #37180, although I am not claiming every occurrence of that error has the same cause.
Diagnostic breakthrough
In a completely fresh task/execution context, the underlying failure became visible earlier, during Computer Use runtime initialization:
We then checked the Windows identity used by the protected Computer Use runtime. The relevant sandbox execution was running as the restricted local account
CodexSandboxOffline, separate from the interactive Windows user.ACL finding
Before changing anything, we saved the owner, inheritance-protection state, and full SDDL for these three paths:
%LOCALAPPDATA%\OpenAI%LOCALAPPDATA%\OpenAI\Codex%LOCALAPPDATA%\OpenAI\Codex\runtimesThe saved pre-change ACL showed:
%LOCALAPPDATA%\OpenAIhad protected inheritance and granted inherited-object/container Full Control only to SYSTEM, Administrators, and the interactive user; it had no traversal/read-execute ACE forCodexSandboxOfflineorCodexSandboxUsers;Codexinherited that state;runtimesalready had an inheritable Read & Execute ACE for the localCodexSandboxUsersgroup, but the protected parent path still could not be traversed by the activeCodexSandboxOfflineidentity.The successful repair added only:
CodexSandboxOfflineon%LOCALAPPDATA%\OpenAI;%LOCALAPPDATA%\OpenAI\Codex;%LOCALAPPDATA%\OpenAI\Codex\runtimes.No Full Control, write, modify, or delete permission was granted. No executable or runtime content was edited, and no broad permission was added to the user profile.
I am intentionally not posting a generic ACL command in this comment. The successful change and its pre-change SDDL backup are recorded, but account/SID and inheritance state are machine-specific. I can provide sanitized before/after SDDL and a backup-based rollback procedure if maintainers want them.
Result
After the ACL repair and a fresh Computer Use execution context:
I repeated the Calculator launch and state/screen-read checks immediately before posting this comment; both passed again, without clicking inside Calculator.
This also explains why launching Codex as Administrator was not sufficient on this installation: the failing filesystem operation was performed by a separate restricted sandbox identity, not by the interactive process.
This fixed the issue on our affected Windows installation and may provide a diagnostic lead/workaround for other affected systems.
I am not claiming this is a universal fix or the confirmed product root cause. It is a machine-specific workaround/diagnostic finding until OpenAI maintainers confirm the sandbox/runtime initialization behavior. It may also explain only one path to the external
node_repl exec context not foundsymptom discussed in #37180.Following up on my earlier report in this thread.
The
spawn EPERMfailure I observed no longer reproduces on the current build:@oai/sky: 0.6.6 (was 0.6.2)A cold start of the same desktop application that previously failed now returns
{"launched":true}. A separate, independentnode_repl/jscall afterwards returns{"appCount":40,"windowCount":6}—list_apps()andlist_windows()both work, which they did not after the failure I originally described.To be clear about scope: I never reproduced the
lstat-specific variant in the original report, so I can only speak to thespawn EPERMplus enumeration-unusable symptom I described. Anyone hitting the original failure mode should retest before this is closed.Related: the stale exec-context defect tracked in #37013 is also resolved on this build.
Retested on 2026-08-11 with the current Windows build. The original pre-selection import failure still reproduces on this machine.
Current environment
26.803.10989.0x6426.803.81509@oai/sky:0.6.6mstsc.exe(running in the same interactive Windows session)Fresh reproduction
The failure occurs before
sky.list_windows(), before any RDP window can be selected, and before any per-app approval prompt can appear. Resetting the JavaScript session and retrying once produced the same result.The newer plugin has removed the previous
sky.documentation()mismatch by shipping its guidance as bundled Markdown, so that part has improved. However, the sandbox/runtime path-access failure remains on this installation. This suggests the fix in the current build is not effective on every affected Windows setup.No raw logs, usernames, RDP addresses, full configuration files, or private project details are included.
Retested on our affected Windows installation after updating Codex. The original pre-selection
spawn EPERMfailure no longer reproduces for us.Current environment:
Verification performed in a fresh Computer Use context:
list_apps(): PASS (40 apps)list_windows(): PASSFor additional context, before the update we tested a narrowly scoped Read & Execute ACL workaround for the sandbox identity. It did not resolve the failure and was fully rolled back. Computer Use began working only after the app/plugin update, with the original ACL state restored.
Our original user-facing failure was the
spawn EPERM/ unusable-enumeration variant, so this result should not be taken as confirmation that the separatelstat %LOCALAPPDATA%\OpenAI\Codexvariant is fixed on every machine.Retested with a controlled Workspace Access vs Full Access A/B comparison on the same Windows installation.
Environment
26.803.8161.026.803.6160110.0.26200.8875x64Workspace Access result
Fresh projectless task:
approval_policy: on-requestsandbox_policy: workspace-writeComputer Use initialization failed immediately with:
The failure occurred before app discovery/control. No filesystem escalation/approval prompt was surfaced. Calculator was opened only through a non-Computer fallback in that task.
Task ID:
019ffb4e-e628-7d21-b717-51e930bff1e1Full Access result
A second fresh projectless task on the same machine used:
approval_policy: neversandbox_policy: danger-full-accessIn this task,
@oai/skyimported and exposed the expected control operations. These calls succeeded:sky.launch_app({ app: "Calculator" })sky.list_windows()verified the Calculator windowNo
EPERMoccurred.Task ID:
019ffb50-84d3-74a2-8ba2-0a3fca4848c2This A/B result isolates the original
lstatfailure to the managed Workspace Access sandbox. The same Windows ACLs, plugin installation, helper, user session, and machine successfully perform Computer Use under Full Access. In Workspace Access, the internallstatdenial appears to terminate initialization without being converted into an on-request approval event.Separate nonfatal observation: the Full Access bootstrap initially returned
sky.documentation is not a function; however, the importedskyobject remained usable and Calculator launch/window verification succeeded. No raw logs or unredacted usernames are included here.Confirmed minimal ACL repair on a later Windows build
We reproduced the same pre-enumeration failure on another Windows system:
Environment
10.0.26200.0x6426.803.81509Diagnosis
The interactive user could access the installed runtime, and the sandbox group could access runtime descendants, but the existing local
CodexSandboxUsersgroup lacked Read & Execute / directory traversal on the Codex runtime root itself.Minimal repair that worked
Run from an appropriately authorized Windows shell, replacing
<computer>with the local machine name:Important scope details:
/T(not recursive)EveryoneACE(RX)on the existing Codex runtime rootAfter fully restarting the desktop app, a fresh read-only
sky.list_apps()call succeeded and returned the installed applications again. Before the ACL change, the same initialization path failed consistently withEPERM.This is narrower than granting the interactive user access: the missing principal was the Codex sandbox group, and the missing permission was parent-directory traversal/read-execute.
Product implication
This evidence suggests that the Windows installer/updater should verify or migrate the required non-recursive traversal/read-execute ACE on the extracted Codex runtime root. That installer/updater explanation is an evidence-based hypothesis; installer internals were not independently verified.
Reported by Leon & Jack from TACHYON.
Additional two-machine reproduction (August 20, 2026):
This failure now reproduces independently on two different Windows computers running separate ChatGPT/Codex desktop app installations.
Observed on both machines when initializing the bundled Browser controller through
mcp__node_repl__js:The failure occurs before the Browser runtime can connect to or enumerate the visible in-app browser tab. The app can display the browser and surface its URL as ambient UI state, but the agent cannot inspect or control it.
Environment confirmed on one affected machine:
26.814.5167.026.814.41407browser-client.mjsthroughnode_replTroubleshooting already completed across the two installations:
C:\Users\<redacted>\AppDatareported as granted, but the isolated Node helper still failed on the samelstatThis appears to be the same ancestor-path traversal/sandbox-permission regression, now affecting the bundled Browser controller as well as Computer Use. Reproducing with separate Windows installations makes machine-specific ACL corruption unlikely.
Expected behavior: the sandboxed Node runtime should be able to resolve its own trusted bundled runtime path and attach to the in-app Browser without requiring broad read access to the user's AppData contents.