Computer Use on Windows fails during app/window discovery with 0x80070003
What version of the Codex App are you using (From “About Codex” dialog)?
Version 26.803.41515
What subscription do you have?
Pro x5
What platform is your computer?
Windows 11 Pro 25h2 — Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
Computer Use on Windows fails during app/window discovery with 0x80070003
Environment
- ChatGPT/Codex desktop app on Windows
- Windows 11 Pro 25H2, build 26200.8973
- Computer Use plugin initially: 26.730.61639
- Computer Use plugin after update: 26.803.41515
- Tested applications: Reliability Monitor and Windows Calculator
Issue
Computer Use cannot discover or attach to any Windows application. General app discovery and window discovery fail before a target application can be selected.
Exact error
EnumWindows failed: The system cannot find the path specified. (0x80070003)
Reproduction
- Install and enable the Computer Use plugin and skill.
- Start a Codex task and explicitly invoke
@Computer. - Ask Computer Use to operate a Windows application.
- Initialize the bundled
@oai/skyinterface in a fresh Node runtime. - Call
sky.list_windows()orsky.list_apps().
Both calls fail with:
EnumWindows failed: The system cannot find the path specified. (0x80070003)
Direct-launch test
To bypass application discovery, Calculator was addressed directly:
sky.launch_app({app:"calc.exe"})
This failed with:
Error: node_repl exec context not found
Calculator was not launched.
Restart and update testing
- The issue originally occurred with Computer Use plugin 26.730.61639.
- It reproduced after updating to plugin 26.803.41515.
- The persistent Node runtime was reset before retesting.
- The entire Windows PC was subsequently rebooted.
- After the full reboot, a new Computer Use session produced the same errors.
- An explicit request to convert USD 1 to CHF using Windows Calculator also failed before Calculator could open.
This rules out a stale ChatGPT process or an update merely awaiting a Windows restart.
Additional version-mismatch symptom
The bundled SKILL.md requires calls such as:
await sky.documentation("guidance")
However, the loaded sky object does not expose a documentation method. Calling it returns:
sky.documentation is not a function
The loaded interface contains methods such as list_apps, list_windows, get_window_state, click, and launch_app, but not the documentation method required by the bundled skill.
Expected behavior
list_apps()should return available Windows applications.list_windows()should return windows on the active desktop.- Computer Use should request app approval if necessary.
- Calculator should open and accept the requested currency conversion.
Actual behavior
- App and window enumeration fail immediately with
0x80070003. - Direct Calculator launch fails with
node_repl exec context not found. - No application permission prompt appears.
- Computer Use cannot operate any Windows application.
Impact
This completely blocks Computer Use on Windows. The failure is not specific to Reliability Monitor because the same behavior occurs with Windows Calculator and during general application discovery.
Suspected area
0x80070003 corresponds to a path-not-found condition. The Windows EnumWindows API itself does not take a filesystem path, so the error appears to originate in the surrounding Computer Use Windows bridge, its runtime initialization, or a missing dependency.
The absent sky.documentation method may indicate version skew between the bundled Computer Use skill and the loaded @oai/sky runtime.
No system configuration changes were made during testing.
What steps can reproduce the bug?
Reproduction
- Install and enable the Computer Use plugin and skill.
- Start a Codex task and explicitly invoke
@Computer. - Ask Computer Use to operate a Windows application.
- Initialize the bundled
@oai/skyinterface in a fresh Node runtime. - Call
sky.list_windows()orsky.list_apps().
What is the expected behavior?
Interaction with Calculator
Additional information
_No response_
15 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Independent RDP-specific reproduction on the current Windows build:
Environment
26.803.5235.0(x64)26.803.41515@oai/sky:0.6.2mstsc.exe(RDP client10.0.26100.8875)Regression
The same RDP-screen inspection workflow worked normally in the Codex Desktop version installed before this update. After updating to
26.803.5235.0, Computer Use can no longer see the active RDP window.Observed behavior
The current skill explicitly requires
await sky.documentation("guidance"), but@oai/sky0.6.2 does not expose that method.sky.list_windows()then returns an empty array even though twomstsc.exeprocesses exist in the same interactive Windows session.mstsc.exe, so this does not appear to be a missing app allowlist entry.Expected behavior
Computer Use should initialize from the bundled runtime without filesystem workarounds and enumerate/capture the visible RDP client window, as it did before the Desktop update.
No full session logs or configuration files are attached because they can contain private project and remote-system details; a sanitized trace can be provided if needed.
Independent confirmation from another Windows installation.
Environment
26.803.41515@oai/sky:0.6.2Reproduction after the update
@oai/skyaccording to the bundled skill.sky.list_windows()orsky.list_apps().Both calls fail immediately with:
The helper process remains running after the error, so this is not a helper-spawn failure. Also,
typeof sky.documentationis stillundefined, although the bundledSKILL.mdrequiressky.documentation("guidance").The same enumeration failure was reproduced on plugin
26.730.61639before updating to26.803.41515. The update and a clean restart did not resolve it. No raw logs, local paths, or configuration files are attached.Additional reproduction from Codex Desktop on Windows:
@oai/sky: 0.6.2sky.list_apps()andsky.list_windows()both fail immediately withEnumWindows ... (0x80070003)nodeRepl.homeDirisnullnodeRepl.envis emptysky.documentationis undefined even though the bundled skill requires itRecovery attempts that did not help:
@oai/skyComputer Use worked earlier before the Codex Desktop update. No Windows security or privacy settings were changed.
Independent confirmation on Windows with Codex/Computer Use 26.803.41515.
In my case, sky.list_apps() succeeds and returns my custom app, and sky.get_window() resolves its window successfully. However, the first sky.get_window_state({ window, ... }) call fails immediately with Error: node_repl exec context not found.
This persists after resetting the runtime, restarting Codex, restarting the target application, and fully rebooting Windows. The failure reproduces against my custom app, so it is not limited to Calculator or Reliability Monitor.
This appears to be a variant where discovery succeeds but the Computer Use bridge fails when it attempts to capture or attach to the selected window.
I can independently confirm the same behavior reported by
@FlyOverCoderKY.My current environment is:
26.803.5235.026.803.41515@oai/sky:0.6.2In my case,
sky.list_windows()succeeds and returns the available windows. However, when the persistent@oai/skyclient is reused in a subsequent Node REPL execution, thesky.get_window_state()sequence fails with:I performed some additional isolation with Codex:
When all of these steps were performed within the same Node REPL execution, the operation succeeded.
Both of the following tests succeeded in a single execution:
The failure returns when @oai/sky is initialized in one Node REPL execution and get_window_state() is called from a later execution.
This suggests that the remaining issue is not Windows Graphics Capture, GPU support, window discovery, or basic startup of codex-computer-use.exe. It appears to involve stale or incorrectly propagated Node REPL execution context when the persistent @oai/sky client is reused across executions.
The deployed node_repl implementation checks whether the stored asynchronous execution ID matches the current active execution ID. If they differ, it throws exactly:
throw new Error("node_repl exec context not found");The bundled skill/runtime mismatch also remains. SKILL.md requires:
await sky.documentation("guidance")but the loaded @oai/sky 0.6.2 object does not expose a documentation method.
As a temporary workaround, resetting the Node REPL and performing the import, window discovery, and Computer Use operation within a single execution works. However, this is difficult to use for normal multi-step Computer Use workflows that require repeated observe/action cycles.
No Computer Use runtime files were modified during these tests.
※I had this text written for the Codex, so I'm not sure if the English is correct...
Root-cause analysis for this issue. Still reproducing on 2026-08-09 with
Codex Desktop 26.803.5235.0 (26.803.41515), Windows 11 Pro 26200.
The helper is spawned inside the Windows sandbox, so it has no interactive desktop
codex-computer-use.exeruns as the sandbox accountCodexSandboxOffline,not as the logged-in user:
ChatGPT.exe -> <logged-in user>
+- codex.exe app-server -> <logged-in user>
+- node_repl.exe -> <logged-in user>
+- codex.exe sandbox -- node.exe kernel.js
+- codex-command-runner-0.147.0-alpha.6.5.exe -> CodexSandboxOffline
+- node.exe kernel.js -> CodexSandboxOffline
+- codex-computer-use.exe -> CodexSandboxOffline
A process running under a different user account is not attached to the
interactive window station (WinSta0). The window-station/desktop object path
cannot be resolved, and that surfaces as ERROR_PATH_NOT_FOUND (0x80070003)
from EnumWindows.
The helper binary itself is fine
Running the exact same
codex-computer-use.exedirectly as the logged-inuser and sending
{"id":1,"method":"list_apps","params":{}}on stdin returns40 apps with their
windowsarrays populated. This is not a missingdependency or a bad build - it is purely which account the helper is
launched under.
Why it ends up in the sandbox: the app implements the escape hatch, the bundled runtime does not
The app already provides an out-of-sandbox path:
[computer-use-native-pipe] computer-use native pipe startup ready pipePath=\\.\pipe\codex-computer-use-<guid>SKY_CUA_NATIVE_PIPE = "1"andSKY_CUA_NATIVE_PIPE_DIRECTORY = '\\.\pipe\codex-computer-use-<guid>'into
[mcp_servers.node_repl.env]in~/.codex/config.tomlBut the bundled
@oai/sky0.6.2 (cua-node 0.0.6/20260723162306):SKY_CUA_NATIVE_PIPEin any filenative-pipe.jsonly underdist/project/cua/sky_js/src/targets/mac/- there is notargets/windows/native-pipe.jstargets/windows/helper_transport.js, whoseWindowsHelperTransportcallsspawn(helperCommand, ...)and speaksJSON-lines over stdio, so the helper inherits the sandbox token
The same version skew explains
sky.documentation is not a functionthatseveral people reported here: the bundled plugin SKILL.md (26.803.41515) says
to call
await sky.documentation("guidance"), but sky 0.6.2 exposes onlytarget, activate_window, get_window_state, click, scroll, drag, press_key,.type_text, launch_app, list_apps, list_windows, get_window,
perform_secondary_action, set_value, transport
Refreshing the runtime does not help
The cua_node runtime bundled inside the app package
(
app/resources/cua_node) declares the identicalruntime_archive_version 0.0.6/20260723162306and ships the same sky 0.6.2with no Windows native-pipe client. Clearing
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\<hash>just re-extracts thesame code.
[windows] sandbox = "unelevated"is only a partial mitigationIt does make the sandboxed process run as the logged-in user - verified with
codex sandbox -c 'windows.sandbox="unelevated"' -- cmd /c whoami, whichreturns the real user instead of
CodexSandboxOffline- and the hardEnumWindows error goes away. But every app then comes back with
windows: 0, so it is still unusable.Suggested fix
Ship a cua_node runtime whose
@oai/skyimplements the Windows native-pipeclient that the app already stands up, so the helper runs outside the
sandbox as the logged-in user.
Independent local verification on 2026-08-08, without modifying the bundled runtime.
Environment
26.803.5235.026.803.41515@oai/sky:0.6.2cua_noderuntime archive:0.0.6/20260723162306-088049353ddcConfirmed locally
SKY_CUA_NATIVE_PIPE=1and a configured Computer Use pipe path.@oai/skypackage contains no references toSKY_CUA_NATIVE_PIPEorSKY_CUA_NATIVE_PIPE_DIRECTORY.WindowsHelperTransportuseschild_process.spawn(helperCommand, ...)and JSON-lines over stdin/stdout.skyobject returns 15 methods and does not includedocumentation, while the bundledSKILL.mdrequiresawait sky.documentation("guidance").sky.list_windows()in one execution still fails withEnumWindows ... 0x80070003, so the same-execution workaround reported for the separatenode_repl exec context not foundvariant does not resolve this machine.This independently supports a Desktop/plugin/runtime version skew where the Windows runtime does not consume the host native pipe and instead follows the in-process helper-spawn path.
One attribution should remain provisional: these observations do not yet prove that
EnumWindowsitself producesERROR_PATH_NOT_FOUNDsolely because the helper is not attached toWinSta0.EnumWindowshas no path argument, and #37595 reports that a missing interrupt-marker path can be surfaced under the same error label. Instrumentation around the exact native call,GetProcessWindowStation,GetThreadDesktop, and immediateGetLastErrorhandling would distinguish those cases.The most direct compatibility fix still appears to be shipping a matched
cua_node/@oai/skyruntime with the Windows native-pipe client already expected by the Desktop app, plus aligning the bundled skill with the runtime API. The helper should also treat a missing interrupt marker as "not interrupted" and preserve the real error source.No runtime files or Codex configuration were modified during this verification.
Additional confirmation + one useful data point.
Same environment: Codex Desktop 26.803.5235.0, Computer Use plugin 26.803.41515, bundled
@oai/sky0.6.2, Windows 11, console session active.sky.list_windows()/sky.list_apps()fail immediately withEnumWindows failed: The system cannot find the path specified. (0x80070003).Key data point: running the exact same bundled runtime (
@oai/sky0.6.2 fromcua_node) from a normal PowerShell launched by the logged-in user,sky.list_windows()returns 16 windows successfully. So the failure is specific to how the app spawns the helper (sandbox accountCodexSandboxOffline/ non-interactive desktop), not the runtime or the machine.Also confirmed:
config.tomlcontainsSKY_CUA_NATIVE_PIPE=1plus the native-pipe directory, but the bundled@oai/sky0.6.2 Windows transport does not consume it (helper_transportspawns the helper directly and inherits the sandbox token). Consistent with the root-cause analysis above.Thanks for the bug report. We understand the problem and have a fix that will be included in the next release.
Additional reproduction on Windows with Computer Use plugin
26.803.41515.Observed consistently:
@oai/skyimports, but the loadedskyobject does not exposedocumentation;sky.documentation("guidance")fails withsky.documentation is not a function.sky.list_windows()fails withEnumWindows failed: The system cannot find the path specified. (0x80070003).12. This makes the failure particularly risky because a task may claim successful UI interaction without a successful Computer Use call.Direct file verification confirmed that the versioned Krita and Cubism files created during the test were only byte-for-byte copies; no claimed visual inspection or UI edit could be verified.
No personal file contents or account information are included in this report.
It appears that the error 0x80070003 has been fixed in 26.803.61601.
sky.documentationis still unavailable, though, but computer use is somewhat usable now.Thank you for the update, @Artem-B. I installed the Codex update and can confirm that Computer Use package
26.803.61601fixes the original0x80070003window-enumeration failure on my system:sky.list_windows()now successfully detects both Krita and Live2D Cubism.However, UI capture still fails for both applications. Calling
sky.get_window_state({ window })with a window object returned bysky.get_window({ id })produces:No UI actions were attempted after that failure. Also confirming that
sky.documentationremains unavailable (TypeError: sky.documentation is not a function). So the update makes window discovery usable, but screenshot/state capture—and therefore safe visual control—is still blocked on this machine.Retested after installing the latest Windows Codex update.
Current versions:
26.803.10989.026.803.81509The connector still discovers both applications successfully through
sky.list_windows(). I then tested screenshot-backed state capture separately against one uniquely returned window for each application:sky.get_window_state({ window, include_screenshot: true, include_text: false })failed withSetIsBorderRequired failed: No such interface supported (0x80004002).SetIsBorderRequired failed: No such interface supported (0x80004002)error.No clicks, keyboard input, saves, or other UI actions were performed.
One improvement in this connector version is that its documentation is now supplied as bundled Markdown (
docs/guidance.md,docs/api.md) instead of requiring the previously unavailablesky.documentation()method. However, screenshot/state capture remains blocked for both Krita and Cubism on this machine.This is a known open issue on Windows 10: https://github.com/openai/codex/issues/25178