Windows Computer Use approval prompt never appears; launch_app fails with `node_repl exec context not found`
What version of the Codex App are you using (From “About Codex” dialog)?
26.730.8199.0 (Microsoft Store package OpenAI.Codex_26.730.8199.0_x64__2p2nqsd0c76g0)
What subscription do you have?
Paid ChatGPT individual subscription (exact tier is not shown in the Codex About dialog)
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
Summary
On Windows, the bundled Computer Use plugin loads successfully and can enumerate installed applications, but the approval/elicitation prompt never appears. Any attempt to launch a desktop application fails immediately with:
Error: node_repl exec context not found
For example, list_apps() returns 40 applications, while launch_app({ app: "mspaint.exe" }) fails before Paint opens. No Windows or Codex application-approval dialog is displayed.
This is reproducible after restarting Codex and after using Windows Settings > Apps > Codex > Advanced options > Repair.
What steps can reproduce the bug?
- Install/update Codex Desktop from the Microsoft Store on Windows.
- Enable the bundled Computer Use plugin.
- Open a new task and grant Full access so the plugin can load from the installed app directory.
- Ask Codex to open a simple Windows application such as Paint.
- The underlying equivalent calls are:
const sky = await import("@oai/sky");
await sky.list_apps(); // succeeds and returns 40 apps
await sky.launch_app({ app: "mspaint.exe" }); // fails
- Observe that no approval dialog appears and the call immediately returns
Error: node_repl exec context not found.
The failure is reproducible across fresh tasks and after a complete app restart.
What is the expected behavior?
When Computer Use requests permission to control or launch a Windows application, Codex should display the documented application-approval prompt. After the user selects Allow, Paint should launch and become controllable.
Additional information
Additional diagnostics
- Codex App package:
26.730.8199.0 - Codex CLI bundled version:
0.147.0-alpha.1.2 - Bundled
@oai/sky:0.6.2 - Computer Use plugin materialization:
26.730.61639 - Windows-native runtime; WSL mode is not enabled.
- The current Windows user owns
%LOCALAPPDATA%\OpenAI\Codexand has Full Control. - App Repair and restart did not change the result.
- The configuration was restored to its original state after testing; no broad trusted-code-path override remains.
- Key Computer Use runtime files in the plugin cache and current Store package were hash-compared and matched, so this does not appear to be a corrupt or partially updated plugin.
- The initial restricted task mode could not traverse
%LOCALAPPDATA%\OpenAI\Codex; Full access resolved that import problem. The separatenode_repl exec context not foundfailure remains specifically when the helper attempts the app-approval flow.
Based on inspection of the bundled Windows transport, this appears to happen after an app approval request is returned and while the client attempts to create the elicitation UI. That is an inference, but it would explain both the missing prompt and the lost execution-context error.
All user names, project paths, and task/session identifiers have been omitted.
13 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Additional confirmed reproduction on Windows 11 ARM64 under Parallels Desktop.
Environment
10.0.26200ARM64OpenAI.Codex_26.730.8199.0_arm64computer-use@openai-bundled26.730.61639@oai/sky:0.6.2Exact reproduction
Notepad was opened manually first. Computer Use then used the exact values returned by
list_windows():Additional diagnostics from a Windows 11 ARM64 guest under Parallels Desktop narrow this further to node_repl execution-context management rather than helper crash or ARM emulation failure.
Environment:
codex-computer-use.exeunder ARM64 emulation; an ARM64 helper is present but unusedLatest deterministic sequence (JST):
sky.list_windows()succeedssky.get_window({id:592174})succeeds for Notepadsky.activate_window({window:{app:"Microsoft.WindowsNotepad_8wekyb3d8bbwe!App",id:592174}})fails withError: node_repl exec context not foundHelper crash checks:
node.exeand parentnode_repl.exewere also still runningcodex-computer-use.exe,node_repl.exe, ornode.execrash/hang event was recordedImportant correlation:
%USERPROFILE%\.codex\node_repl\active_execshad a modification timestamp exactly matching the failure second (15:39:58)This strongly suggests that the execution-context registration is being removed or lost while the helper and all related processes remain alive. The failure is therefore not consistent with helper crash, ARM64 emulation crash, Parallels-specific failure, or window enumeration failure.
Also confirmed separately:
computer_use.windows.always_allowed_app_idsBoolean-map config was parsed correctly by the installed desktop app, survived restart, and still did not change the failureCurrent best-fit diagnosis:
node_replexecution-context bookkeeping or the helper-to-node_repl context handoff fails specifically on intervention calls such asactivate_window,get_window_state, andlaunch_app, while enumeration/read-only calls continue to work.Related observation from the same Windows app/plugin build family: in another task, attempting to open NetEase Cloud Music also failed before a usable approval or launch flow, with
spawn EPERM; retries and resetting the Computer Use session did not restore app/window enumeration. This is not the identical error reported here, but it suggests the approval/launch path can be affected by an earlier native helper failure. Environment: Codex Desktop 26.730.8199.0, Computer Use plugin 26.730.61639, @oai/sky 0.6.2, Windows x64.Additional independent reproduction on the same Windows app/plugin build:
Environment
26.730.8199.026.730.61639@oai/sky:0.6.2Additional targets and results
The failure is not specific to Paint or to one desktop application:
sky.list_apps()succeeds and returns the installed application catalog.MSEdge, butsky.launch_app({ app: "MSEdge" })fails immediately with:``
text
``Error: node_repl exec context not found
get_window_state(), screenshot-backed inspection, activation, and keyboard input all failed at the same execution-context layer.Recovery attempts
node_repl/ Computer Use processes before restartNone changed the behavior. The full reboot confirms this is not only a stale orphan-process condition.
API-contract signal
The currently materialized Computer Use
SKILL.mdrequiresawait sky.documentation("guidance")before control and refers tosky.documentation("api")/sky.documentation("confirmations"). However, after importing the bundled@oai/sky0.6.2:This may be a separate packaging/API-version mismatch rather than the direct cause of the missing exec context, but it is present on the same affected build and may help identify a mismatched skill/runtime bundle.
No user names, local project paths, pipe identifiers, credentials, or application contents are included here.
Additional evidence suggests this is broader than only the approval-prompt callback.
On 26.730.8199.0 / Computer Use 26.730.61639 / @oai/sky 0.6.2:
Error: node_repl exec context not found
Current request metadata is populated rather than empty:
The helper remains alive under 550W\CodexSandboxOffline. The observed failure is therefore consistent with execution-context bookkeeping/handoff rather than a helper crash.
sky.launch_app()fails withError: node_repl exec context not foundon WindowsSummary
The bundled Computer Use plugin can successfully initialize
@oai/skyand call read-only methods such assky.list_apps()andsky.list_windows(). However, callingsky.launch_app()immediately fails with:The requested application is not launched. Resetting the persistent Node REPL kernel and reinitializing
@oai/skydoes not resolve the issue.Environment
26.803.5235.0(OpenAI.Codex, x64)26.803.4151510.0.26100/261007.6.4@oai/sky, invoked through the persistentmcp__node_repl__jskernelSteps to reproduce
``
js
``if (!globalThis.sky) {
const { sky } = await import("@oai/sky");
globalThis.sky = sky;
}
``
js
``globalThis.apps = await sky.list_apps();
nodeRepl.write(JSON.stringify(apps, null, 2));
list_apps()returns the installed/running applications successfully.``
js
``await sky.launch_app({ app: "C:\\Windows\\explorer.exe" });
nodeRepl.write("launch request completed");
Actual result
The call fails immediately:
A subsequent
sky.list_windows()call succeeds but shows that no File Explorer window was created.The same error was also observed with these identifiers:
Expected result
sky.launch_app()should launch File Explorer and resolve normally. The new window should then be discoverable throughsky.list_apps()orsky.list_windows()so it can be selected for further Computer Use actions.Recovery attempts
launch_app()with the full executable path, executable name, andprocess:identifier.sky.list_apps()andsky.list_windows()remained functional after the error.mcp__node_repl__js_reset.@oai/skyand confirmed thatlist_apps()still worked.sky.launch_app({ app: "C:\\Windows\\explorer.exe" })after the reset.The post-reset attempt failed with the same error.
Reproduction frequency
Reproduced on every attempted
sky.launch_app()call in this session, including after a full Node REPL reset.Impact
Computer Use cannot open an application that does not already expose a targetable window. This blocks workflows that depend on launching File Explorer or another closed application before selecting its window.
Additional notes
Possibly the same defect as #37281 — cross-linking rather than duplicating.
We posted a root-cause analysis there: #37281 (comment).
Short version: the Computer Use helper transport stays bound to the
AsyncLocalStorageexeccontext that spawned it, so a callback from the helper back into the kernel resolves against an
exec that has already ended.
node_repl.exehas two throw sites behind this one error string, which may be why thisissue and #37281 read like different bugs:
| Site | Condition | Symptom |
|---|---|---|
|
execState == null| no store at all — a callback outside any exec | this issue: fails on the firstlaunch_app, in the approval/elicitation callback ||
execState.id !== activeExecId| store exists, belongs to a prior exec | #37281: succeeds once, fails on subsequent calls |To be clear about what we did and didn't verify: we reproduced and fixed the second row. The
mapping of this issue to the first row is an inference from the report here plus the two
shipped throw sites — we did not reproduce the
launch_appfirst-call path. So the workaroundin that comment (
await sky.transport.close()before Computer Use work in each new JS call)may or may not help here. Worth trying, and worth reporting back either way — a negative result
would usefully separate the two.
Possible workaround / observation
I noticed a potentially useful workaround for this issue.
After sending Computer Use an instruction to interact with a specific application, if I manually bring the target application's window to the foreground and leave it visible on screen for a few seconds, Computer Use is sometimes able to start interacting with the application normally.
In other words, the sequence that works for me is roughly:
I have reproduced this behavior multiple times on my Windows machine.
This is only an observation/workaround rather than a confirmed explanation of the underlying issue, but it may suggest that window visibility, foreground focus, or target-window acquisition timing is involved in the failure.
It would be interesting to know whether others affected by this issue can reproduce the same behavior.
I kept Slack open but I continued to get the error. So, the workaround did not work for me
Additional reproduction on a newer Windows build.
Feedback ID:019fe5bf-6666-7143-bf64-f74190827115
In-app feedback with reproducing session logs:
Environment:
OpenAI.Codex 26.803.5235.026.803.41515@oai/sky:0.6.2cua_node:f1bf3cd3a5929acdObserved behavior:
sky.list_apps()succeeds.sky.list_windows()succeeds.sky.get_window()succeeds.sky.launch_app()fails withnode_repl exec context not foundinhelper_transport.js.sky.get_window_state()fails with the same error.computer-use native pipe startup ready.os error 740, missing helper-path error, or Node-version error was observed.Recovery attempts:
cua_noderuntime, andnode_replstate.The regenerated
node_repl.exe,node.exe,@oai/sky/package.json, andhelper_transport.jswere verified SHA-256 identical to the previous copies, and the same failure persists.This therefore appears to still reproduce on
26.803.5235.0, and does not look like a simple stale/corrupted local runtime.I can reproduce the same error on a newer Codex Desktop and Computer Use build. I also found a reproduction that does not call
launch_app()and does not request an approval.Current environment
26.803.5235.0(Microsoft Store package)26.803.4151510.0.26200, build26200, 64-bitC:C:: 1 TB NVMe SSD, NTFS (932 GB reported capacity)D:: Kingston A400 480 GB SATA SSD, NTFS (447 GB reported capacity)Reproduction after reinstall and restart
I reset the persistent Node REPL and then ran these as separate tool calls.
First tool call:
Result: success. The accessibility tree contained 230,522 characters.
Second, separate tool call using the saved
skyand window:Result:
A third, separate control call to
sky.list_apps()succeeded again and returned 40 apps. This indicates that the Computer Use service and native helper were still active after the failure.What this adds
The failure is not limited to
launch_app()or to an approval-required action. A read-onlyget_window_state()operation succeeds in the first Node REPL execution context, but the same operation fails in the next execution context. Two state captures performed inside one tool call have succeeded in earlier testing.The behavior remained after:
This looks like an execution-context lifetime or handoff defect between separate Node REPL tool calls. Personal paths, window titles, and task identifiers are omitted.
Update from x64 on the current build.
@oai/sky: 0.6.6 (was 0.6.2)The
node_repl exec context not foundfailure no longer reproduces here. The reported sequence now completes across strictly independentnode_repl/jsexecutions:list_windows()->activate_window->get_window->{"found":true}get_window_state(..., include_screenshot: true)->["window","screenshots","accessibility"]sky.click()using the screenshot id produced in call 2 ->{"clicked":true,"screenshotId":"screenshot-0","x":347,"y":449}activate_window,get_window_stateandlaunch_app— the three intervention calls named in the best-fit diagnosis above — all work, including across execution boundaries. Full test details in #37013.My earlier
spawn EPERMobservation also no longer reproduces. A cold start of the same desktop app now returns{"launched":true}, and a subsequent independent call returns{"appCount":40,"windowCount":6}.Scope caveat: this is a native x64 report. The original report here is ARM64 running the x64
codex-computer-use.exeunder emulation, so I cannot speak to that path — someone on ARM64 should confirm separately before this is considered resolved.