Repository navigation
[Windows] 26.901.1978.0 fails to launch UI when cua_node staging cannot copy node_repl.exe #42501
Description
Summary
After updating the Microsoft Store Codex Windows app to 26.901.1978.0, Codex launched several ChatGPT.exe processes but never created a visible window. All processes were responsive, but MainWindowHandle remained 0.
Investigation showed that the new bundled cua_node runtime repeatedly failed during staging. Each launch created a new incomplete .staging-ad3b5049246cde44-* directory. The incomplete staging directories contained node.exe but were consistently missing node_repl.exe.
Manually staging the current package's app\resources\cua_node using xcopy /G into the expected versioned runtime directory fixed the problem immediately. Codex then launched normally.
This appears to be another manifestation of the EFS / Application Protected WindowsApps relocation issue reported in #32732 and #25220, but in this build the failure blocks the entire Codex UI from appearing.
Environment
- Codex package:
OpenAI.Codex_26.901.1978.0_x64__2p2nqsd0c76g0 - Platform: Windows x64
- Install type: Microsoft Store / MSIX
- Runtime root:
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node
Symptoms
Immediately after attempting to launch Codex:
Id ProcessName Responding MainWindowHandle
2396 ChatGPT True 0
25444 ChatGPT True 0
33412 ChatGPT True 0
33576 ChatGPT True 0
35452 ChatGPT True 0
The startup log stopped after:
2026-09-03T09:31:33.374Z info [sparkle] in_app_updates_policy_wait_started timeoutMs=300000
2026-09-03T09:31:33.375Z info Launching app agentRunId=null allowDebugMenu=false allowDevtools=false allowInspectElement=false buildFlavor=prod enableSparkle=false enableUpdater=true nodeEnv=undefined packaged=true platform=win32
2026-09-03T09:31:33.581Z info Appshot hotkey inactive configured=true enabled=false platform=win32
No main window appeared.
Runtime staging evidence
The runtime directory contained three failed staging attempts plus an older complete runtime:
Name Files NodeExe NodeRepl
.staging-ad3b5049246cde44-VWwnnl 2542 True False
.staging-ad3b5049246cde44-xBEXDT 3052 True False
.staging-ad3b5049246cde44-YJEcC5 2119 True False
415ffebf3d576e9b 4679 True True
After deleting the failed staging directories and launching Codex again, a new failed directory immediately appeared:
.staging-ad3b5049246cde44-co8bps
415ffebf3d576e9b
This confirms the current build expected runtime hash ad3b5049246cde44 and repeatedly failed to finish materializing it.
PowerShell Remove-Item -Recurse -Force also failed while traversing very deep paths under the incomplete staging trees, e.g. node_modules\@oai\sky\dist\js-dependency-cache\...\pnpm-store\..., requiring long-path-aware removal.
Workaround that fixed the launch
With all ChatGPT.exe processes stopped, the current package runtime was copied manually:
$pkg = Get-AppxPackage OpenAI.Codex
$src = Join-Path $pkg.InstallLocation "app\resources\cua_node"
$dst = "$env:LOCALAPPDATA\OpenAI\Codex\runtimes\cua_node\ad3b5049246cde44"
New-Item -ItemType Directory -Force -Path $dst | Out-Null
cmd /c xcopy "$src\*" "$dst\" /E /I /H /Y /GVerification after the copy:
Test-Path "$dst\bin\node.exe" => True
Test-Path "$dst\bin\node_repl.exe" => True
File count => 4683
After this, Codex launched successfully and the UI appeared normally.
Expected behavior
Codex should successfully materialize the bundled cua_node runtime from the protected Microsoft Store package during an update, without requiring manual copying.
If normal copy semantics fail for Application Protected/EFS resources, the Windows relocation implementation should use an equivalent of COPY_FILE_ALLOW_DECRYPTED_DESTINATION (the behavior that makes xcopy /G work), or another supported stream-copy mechanism.
The app should also detect an incomplete staging runtime and surface the underlying relocation error instead of leaving several responsive background processes with no UI.
Why this is particularly disruptive
The runtime hash changes when Codex updates. Therefore, a previously complete runtime such as 415ffebf3d576e9b does not prevent the problem when a newer build expects ad3b5049246cde44. If the protected-file relocation bug persists, the failure can recur on every update that introduces a new cua_node runtime.
Related
- [Windows] Codex 26.707 cannot stage Browser runtime from EFS-protected WindowsApps files #32732 — Windows Codex cannot stage Browser runtime from EFS-protected WindowsApps files
- [Windows] Bundled plugins (Computer Use, Browser, Chrome, LaTeX) unavailable — copyfile fails on EFS-encrypted WindowsApps files #25220 — bundled plugin copyfile failures on EFS-encrypted WindowsApps files
- [Windows][WSL] MSIX EFS-encrypted bundled codex fails relocation with ERROR_ENCRYPTION_FAILED (0x80071770) #38696 — related MSIX EFS relocation failure for WSL executables
Activity
github-actions commentedon Sep 3, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
cua_noderuntime relocation #42412Powered by Codex Action
upeirgranuccihs-collab commentedon Sep 4, 2026
Confirmed on a newer Windows build:
OpenAI.Codex 26.901.2854.0(Microsoft Store/MSIX, x64).Observed startup state matched this issue:
ChatGPT.exeprocesses started;MainWindowHandle = 0for all of them;ChatGPT.exe --type=renderer;codex.exe ... app-server;Runtime staging evidence under
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node:.staging-8e7585fc8f35ed57-*directories created on launch;bin\node.exepresent;bin\node_repl.exemissing;manifest.jsonmissing;app\resources\cua_node\bin\node_repl.exeexists.The same workaround fixed the app immediately:
ChatGPT.exe/codex.exeprocesses;%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\8e7585fc8f35ed57;app\resources\cua_nodetree withxcopy /E /I /H /Y /G;bin\node.exe,bin\node_repl.exe, andmanifest.jsonall exist.Result:
4683files copied, and Codex opened normally on the next launch.This confirms the protected-file/runtime relocation bug still reproduces in
26.901.2854.0, with a new runtime hash, and that thexcopy /Gfull-runtime workaround remains effective.Weiyuantong commentedon Sep 4, 2026
Well done!
yuyu-111000 commentedon Sep 4, 2026
I can confirm that this issue still reproduces on a newer Codex Windows build:
26.901.2854.0OkSymptoms were the same: multiple
ChatGPT.exeprocesses were running, but no visible Codex window appeared.I checked:
The app process was alive, but no main window was created.
I then inspected:
There were many failed staging directories:
All of them showed the same incomplete state:
So the runtime staging process was repeatedly failing before finalization.
I manually copied the bundled runtime from:
to:
using:
The copy completed successfully with:
Afterwards, verification showed:
Codex immediately launched normally after this.
So this appears to still affect build
26.901.2854.0, and thexcopy /Gworkaround remains effective.YetongW commentedon Sep 4, 2026
I can confirm that this issue is still reproducible on a newer Windows build:
Codex Desktop:
26.901.4073.0In my case, the app started multiple background
ChatGPT.exeprocesses, but no desktop window was created.MainWindowHandleremained0.The active CUA runtime was:
What I found
The problem still appears to be related to incomplete
cua_noderuntime materialization from the protected WindowsApps package.However, I ran into an additional problem with the existing workarounds.
Using:
to copy the complete runtime was not reliable on my machine. The copy could stop before the complete runtime had been materialized.
I then tried implementing a per-file copy using PowerShell, but:
also failed while traversing the bundled pnpm dependency tree.
For example, it failed under a path similar to:
with
DirectoryNotFoundException.This appears to be a second Windows-specific problem caused by the extremely deep pnpm directory structure / long paths.
Workaround that worked for me
The reliable solution was:
robocopy /Lonly to enumerate the complete runtime tree, since it handles long paths better thanGet-ChildItem -Recurse;\\?\extended-length path prefix;.NET File.Open;.NET File.Open(... FileMode.Create ...).This avoids both the long-path traversal problem and the protected/encrypted file-copy behavior.
Here is the PowerShell script that successfully restored the runtime for me:
After this completed successfully, the runtime existed under the expected content-addressed directory and Codex Desktop was able to show its UI again.
So, at least on my system, there seem to be two interacting Windows problems during
cua_nodematerialization:The per-file stream copy also seems preferable to copying only
node_repl.exe, because an incomplete staging directory may be missing many additional files.For reference, this was reproduced on:
Disclosure: I diagnosed the issue interactively and tested the workaround on my machine. The explanation and PowerShell script above were organized and cleaned up with the assistance of OpenAI GPT.
xiaokai-lyk commentedon Sep 4, 2026
Additional reproduction on Windows:
This suggests the issue may sometimes self-recover after a very long delay, rather than failing permanently. However, this duration is completely abnormal. The expansion of the node should NOT affect the normal operation of the app!
sdfsjagfdgas commentedon Sep 4, 2026
Confirmed this issue still reproduces on the newer Codex Desktop 26.901.4073.0 MSIX package.
Environment
OpenAI.Codex_26.901.4073.0_x64__2p2nqsd0c76g0OkA full uninstall/reinstall of the same version did not change the behavior.
Failure signature
On every failed launch:
--type=rendererprocessMainWindowHandle = 0The desktop log consistently stopped after only:
The Electron main process continuously consumed CPU while child processes remained mostly idle.
Runtime staging evidence
This build expects the following
cua_noderuntime:The machine previously only had the older finalized runtime:
Each failed launch created another directory similar to:
The staging process never finalized. The incomplete staging directory consistently stopped at only a handful of files:
node.exewas present whilenode_repl.exeand additional runtime files were missing. The corresponding files inside the installed MSIX package are present and marked Application Protected.EFS itself is working
One difference from some related reports: EFS does not appear to be broken on this machine.
I performed a real EFS round-trip test on a temporary NTFS file:
cipher /ecipher /dEncryption and decryption both completed successfully.
So this failure can occur on a Windows system where normal user EFS functionality is healthy.
Workaround
With all Codex /
ChatGPT.exeprocesses stopped, I manually pre-populated the runtime expected by this build.The package's complete:
was copied using
xcopy /Ginto:The resulting runtime contained approximately:
including both:
No files under
C:\Program Files\WindowsAppswere modified.Result
Immediately after pre-populating the expected runtime, Codex started successfully.
Before workaround:
After workaround:
The startup log expanded to ~251 lines and included:
The application became fully usable.
Interestingly, after successful startup Codex automatically cleaned up the failed
.staging-*directories and the previous415ffebf3d576e9bruntime, leaving only the expected:Conclusion
This is a strong A/B reproduction pointing to the Windows/MSIX
cua_noderuntime materialization/relocation path:This also suggests the issue is not limited to systems with broken EFS, since EFS encryption/decryption works correctly here.
The important regression is that a runtime relocation failure can block the entire desktop startup path without surfacing the actual relocation error to the user.
Ideally the Windows materialization path should either:
xcopy /Gsucceed), orand an incomplete runtime staging operation should fail visibly rather than leaving the Electron main process running headlessly.
This issue therefore still appears to be present in 26.901.4073.0.
TarryFu commentedon Sep 5, 2026
Confirming that this issue still exists in 26.901.5280.0 on Windows (Microsoft Store/MSIX).
After updating,
ChatGPT.exeprocesses start and remain running, but no UI appears (MainWindowHandle = 0, with no renderer process).Under
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node, multiple.staging-440c4f095d41ea30-*directories were created. They containednode.exe, butnode_repl.exeandmanifest.jsonwere missing.I fixed it by stopping ChatGPT and copying the complete
app\resources\cua_noderuntime from the installed MSIX package into the expected440c4f095d41ea30runtime directory usingxcopy /E /I /H /Y /G.After that, the UI opened immediately, and normal launches from the Windows Start menu also worked again.
sleepyy-dog commentedon Sep 6, 2026
Still broken on
26.901.5003.0. Same machine, three consecutive versions, three fresh runtime hashes, two hard failures.Windows 11 Home China (
CoreCountrySpecific, build 10.0.26200), Store/MSIX, x64.Hash sequence on a single machine
26.901.1978.0ad3b5049246cde4426.901.4073.0c2900163265bdaec26.901.5003.06a86821985684e13Because the destination directory name is version-derived, every single update re-runs the same doomed copy. There is no stable state a user can reach. Fixing it by hand does not protect you from the next Store update — and Store updates are automatic by default, so the app breaks itself at a time the user did not choose and cannot predict.
The
4073→5003contrast has not been reported yetSame machine, same OS, same filesystem, same account, same package family — one version materialized its runtime on its own, the very next one did not. That makes this a race/timeout, not a deterministic failure, and it independently corroborates the ~33-minute self-recovery reported earlier in this thread. Whatever retry budget the materializer has, it is sitting right at the edge of the wall-clock cost of 4,683 doomed copies (see #41822). That is why reports in this thread look inconsistent: some users get a slow success, some get an infinite hang, and it is the same bug.
Measured on the failing version
app\resources\cua_node: 4,683 files / 337,645,144 bytesEncryptedattribute: 4,683 / 4,683fsutil behavior query disableencryption→DisableEncryption = 0— this is an edition limitation, not a policy toggle. Home SKUs have no EFS and can never create these files.bin\node.exebut neverbin\node_repl.exeormanifest.jsonNT AUTHORITY\SYSTEMand Store-signed, so users cannot patch the copy logic themselves even if they diagnose itCost of the attribute propagation
robocopy /E /COPY:DT /DCOPY:TFAILED: 0, 0 files withEncryptedat destinationThe only difference is
/COPY:DT— copy Data and Timestamps, drop Attributes. One flag. That is the entire bug.Why this deserves more urgency than it is getting
This is not a degraded feature or an edge case. The application does not open at all. And it fails in the worst possible way:
Launching app ...and nothing else is ever written.ChatGPT.exeprocesses start and sit there consuming CPU withMainWindowHandle = 0, so the OS thinks the app is running fine. The user double-clicks the icon and nothing happens, repeatedly, with zero feedback.%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node. A normal user has no path to the diagnosis. Multiple people in this thread confirmed that a full uninstall/reinstall does not help — which is exactly what a normal user will try, and it costs them a 300+ MB re-download to end up in the same place.The blast radius is not small: Home is the default SKU on essentially every consumer Windows machine. Pro and Enterprise have EFS so the attribute propagates fine and nobody internally sees this — which is presumably why it shipped. That is not a reason for it to survive six days. It means the entire consumer Windows install base is the affected population and none of you are in it.
Status of this bug in the repo
Reproducible for six days straight across
1978/2854/4073/5280/5003— five releases. You have shipped repeatedly during that window and not one of those releases touched this code path.Searching this repository for
cua_nodereturns 169 issues and zero pull requests. This issue has eight comments, all from affected users doing your triage for you, and no response from anyone at OpenAI. No assignee. No milestone. #41822 has had the mechanism spelled out in its literal title since August 31st.The fix is one flag in one copy call, and it has been sitting in this thread, fully diagnosed with reproduction steps and measurements, for days.
Please assign this and ship it. At absolute minimum, acknowledge it publicly so the people hitting a silently dead application know it is on the board.
ThuocLQ commentedon Sep 7, 2026
Independent confirmation on another affected machine.
### Environment:
Codex Desktop 26.901.1978.0
Windows 11 25H2, build 26200.9168
x64 / Intel Core i5-13420H
Microsoft Store / MSIX
I observed the same background-only startup behavior with MainWindowHandle = 0.
I also reproduced the issue from a completely fresh local Windows user profile, which rules out my existing per-user Codex configuration/state.
Manually staging cua_node to runtime ad3b5049246cde44 using xcopy /E /I /H /Y /G completed with 4683 files. Both bin\node.exe and bin\node_repl.exe were present afterward, and Codex launched normally immediately.
I also reported this reproduction to OpenAI Support under Case #14288515; support has added the cua_node staging findings and workaround to the case.
So this is another independent confirmation of the same runtime-materialization failure rather than a user-profile or rendering configuration issue.
TarryFu commentedon Sep 8, 2026
Update: reproduced again on
26.901.6511.0I can confirm that this issue is still reproducible on a newer Microsoft Store build,
26.901.6511.0, on the same Windows machine.I previously encountered the same problem on
26.901.5280.0. At that time, manually restoring the requiredcua_noderuntime withxcopy /Gfixed the application, and Codex/ChatGPT Desktop launched normally afterwards.After updating to
26.901.6511.0, the problem returned:ChatGPT.exestarted and remained responsive, but no UI appeared.MainWindowHandleremained0.GPU/network/storage utility processes were present, but no
--type=rendererprocess was created.The new expected runtime ID was
b474a88d5d105afa.Every launch created another incomplete
.staging-b474a88d5d105afa-*directory.In all of these staging directories:
bin\node.exewas present;bin\node_repl.exewas missing;manifest.jsonwas missing.The bundled runtime under
app\resources\cua_nodewas complete, includingnode_repl.exe.The previously repaired runtime from
26.901.5280.0(440c4f095d41ea30) was still complete, but it did not help because the new build required the new runtime ID.I again copied the complete bundled runtime to:
using
xcopy /G. It copied 4683 files successfully (exit code 0), and SHA-256 checks formanifest.json,node.exe, andnode_repl.exeall matched the packaged source.After this, the application immediately launched normally again.
So this appears to confirm that the issue can recur across application updates whenever the required
cua_noderuntime hash changes, and that the underlying staging/relocation problem is still present in26.901.6511.0.BeyondLiby commentedon Sep 9, 2026
Independent reproduction on
26.901.6511.0with repeated near-complete stagingI can independently reproduce the same failure on Microsoft Store/MSIX build
OpenAI.Codex_26.901.6511.0_x64__2p2nqsd0c76g0.Startup diagnostics on the affected machine:
ChatGPT.exeprocesses start, but Codex has no usable UI;CODEX_CLI_PATHat%LOCALAPPDATA%\Programs\OpenAI\Codex\bin\codex.exeand the file exists, so this is not a missing-CLI-path problem;cua_noderuntime (440c4f095d41ea30) is still present;b474a88d5d105afaand repeatedly fails to finalize it.Within about 15 minutes, five new staging directories were created:
Every one had the same partial state:
So each launch is doing substantial runtime materialization, reaches essentially the same protected-file boundary, abandons that staging tree, then creates a fresh staging directory on the next attempt.
One practical observation: a full-tree
xcopy /Grepair is relatively slow because it re-walks/re-copies thousands of files even though the staging tree is already largely populated. I am testing an adaptive repair approach that reuses the most complete staging tree, compares it against the packagedapp\resources\cua_node, copies only missing/newer files usingxcopy /G, verifiesmanifest.json/node.exe/node_repl.exe, and then finalizes the staging directory.This suggests the product-side recovery path could also be improved by resuming an existing near-complete staging tree (or retrying only the failed protected-file copy) instead of starting another full staging tree after each failure. A bounded retry plus
COPY_FILE_ALLOW_DECRYPTED_DESTINATION-equivalent behavior for protected files would avoid both the headless startup and repeated disk/work amplification.Vijayabhaskar96 commentedon Sep 9, 2026
Confirmed again on Codex
26.903.8094.0I reproduced the same Microsoft Store/MSIX
cua_nodestaging failure after updating to:The new expected runtime was:
b58ca2eaa616c2daThree launch attempts left incomplete staging directories:
They contained only 450, 309, and 324 files. The complete packaged runtime contained:
The previously repaired runtime for 26.901.6511.0 still existed, but it did not help because this update required a
new content hash.
Copying the bundled runtime into:
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\b58ca2eaa616c2dawith data-only semantics fixed the app:
robocopy.exe $source $destination /E /COPY:DT /DCOPY:T /R:1 /W:1Verification showed identical source/destination file and byte totals. The copied bin\node.exe reported v24.20.0.
Codex then activated successfully, its processes remained responsive, and no new staging directories appeared.
This confirms the defect still recurs whenever an update changes the expected cua_node runtime hash. It is not fixed
by updating the globally installed Node.js.
YueDong0211 commentedon Sep 10, 2026
I can reproduce the same
cua_noderuntime staging failure on Codex for Windows 26.903.8094.0, and I was able to isolate the exact file that caused staging to remain incomplete.Environment
OpenAI.Codex_26.903.8094.0_x64__2p2nqsd0c76g0%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_nodeb58ca2eaa616c2daFailure symptoms
Before the workaround:
ChatGPT.exeprocesses startedChatGPT.exeprocesses hadMainWindowHandle = 0ChatGPT.exe --type=rendererprocesses were createdcodex.exe ... app-serverprocess was createdEvery launch generated another incomplete directory:
.staging-b58ca2eaa616c2da-*The newest failed staging directory had only 2,280 files and contained:
bin\node.exe— presentbin\node_repl.exe— missingmanifest.json— missingThe bundled runtime in the MSIX package contained 4,052 files, including all three.
Exact file-copy failure
I manually copied the bundled
cua_noderuntime.xcopy /E /I /H /Y /Greported success but copied only 4,051 of 4,052 files.The single missing file was:
bin\node_modules\@oai\sky\dist\js-dependency-cache\shared-v1\applied-bk-agent-openai-js\pnpm-store\v11\links\@rollup\plugin-typescript\12.1.2\bf978194e78e4126a616bfdc5a9fea913609f48ddc1a68ce028d4322c58982dd\node_modules\tslib\tslib.es6.jsSource properties:
Archive, EncryptedTrying to copy this file directly with
xcopyfailed.I then temporarily shortened the source and destination paths using
subst. The effective paths became 241 characters. Using:copy /D /Ysuccessfully copied the file in decrypted form.
Verification after the copy:
ArchiveResult
After the runtime was complete, Codex launched normally.
I then observed:
MainWindowHandlebecame non-zero (396198)ChatGPT.exe --type=rendererprocesses appearedcodex.exe ... app-serverstarted successfully%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\b58ca2eaa616c2da\bin\node.exeThis looks like the same Windows runtime materialization/EFS problem, but in 26.903.8094.0 I was able to narrow it down to a specific encrypted file located under a very long pnpm dependency-cache path.
It may be worth checking whether the runtime staging implementation needs both long-path-safe handling and the equivalent of
COPY_FILE_ALLOW_DECRYPTED_DESTINATIONwhen materializing protected/EFS files from the MSIX package.Arison591 commentedon Sep 10, 2026
Reproduced again on a newer Windows Store build, with an additional long-path/EFS detail that may help narrow down the relocation failure.
Environment
OpenAI.Codex 26.903.8094.0(x64)26200.9445%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_nodeObserved state
The runtime root contained 20 failed staging directories, all for the same runtime ID:
The expected final directory did not exist:
The packaged source runtime existed and contained 4052 files.
Before repairing the runtime, each launch created the Electron main
Chrome_WidgetWin_*window, but it became hung after roughly six seconds. Normal launch and--disable-gpubehaved the same way. A clean Chromium profile and a clean temporaryCODEX_HOMEdid not change the failure.Copy result and the one file
xcopy /GmissedRunning the workaround with
xcopy /E /I /H /Y /Greported:One encrypted file was still missing:
Details:
robocopyalso failed for that file with:I copied the final file using long-path-aware Win32/.NET paths while writing a decrypted destination. The final runtime verified as:
Recovery validation
I then launched with
CODEX_SPARKLE_ENABLED=falsethroughInvoke-CommandInDesktopPackage.After the complete runtime was present:
IsHungAppWindow=Falsefor all 10 samples over 30 seconds;This installation therefore appears to hit the same incomplete
cua_nodematerialization issue on26.903.8094.0. The additional failure mode here is that evenxcopy /Gcan silently leave the runtime incomplete when an EFS-protected source file also has a path longer than the legacy Win32 limit.Privacy note: usernames, account identifiers, project paths, session data, and raw logs have been omitted.
lavine888 commentedon Sep 12, 2026
Confirming this bug with a longer timeline: it has reproduced on 7 consecutive Store updates, including the latest build.
Environment: Windows 11 (10.0.26200), MSIX package
OpenAI.Codex_..._2p2nqsd0c76g0.Affected versions — every single update since late August:
ad3b5049246cde44c2900163265bdaec440c4f095d41ea30b474a88d5d105afab58ca2eaa616c2dae7fe122ad3cbcd58a708e72b10c27b59Symptoms identical each time: several
ChatGPT.exeprocesses (MAIN/GPU/UTILITY/CRASHPAD), no--type=rendererprocess ever spawns,MainWindowHandle = 0, main process spinning ~2 cores,MoAppHangin the Event Log, no crash dumps. New.staging-<runtime-id>-*dirs accumulate (34 of them after the first occurrence), each containing everything exceptbin\node_repl.exe.cipher /con the packaged source confirmsnode_repl.execarries the Application Protected (EFS) attribute, while every other file in the package stages fine.Workaround, verified 7/7: stop all
ChatGPT.exe,xcopy /E /I /H /Y /Gthe package'sapp\resources\cua_nodeinto a temp dir (the/Gdecrypted copy reads the protected file), verify SHA256 ofmanifest.json/bin\node.exe/bin\node_repl.exe, atomically rename to<runtime-id>, move staging debris aside, relaunch via AUMID (shell:AppsFolder\OpenAI.Codex_2p2nqsd0c76g0!App). Window appears ~30 s after relaunch, every time.Two extra data points that may help whoever picks this up:
xcopyalso silently skipped one >260-char path (bin\node_modules\@oai\sky\...\tslib\tslib.es6.js); on 26.908.4834.0 all 4123 files copy cleanly. So the long-path gap is orthogonal — the protected-file gap is the constant.Happy to provide staging dirs, hashes, or event logs if useful.
TarryFu commentedon Sep 12, 2026
This issue is still reproducible on OpenAI.Codex 26.908.4834.0.
After the update,
ChatGPT.exeprocesses started normally, but there was no visible window, no--type=rendererprocess, and allMainWindowHandlevalues remained0.The new runtime ID was:
a708e72b10c27b59Multiple failed staging directories were created:
and they consistently contained:
The packaged runtime under
app\resources\cua_nodewas complete.I again worked around the problem by stopping ChatGPT and copying the complete bundled
cua_noderuntime into:using
xcopy /E /I /H /Y /G.This copied 4123 files with exit code
0. After relaunching, multipleChatGPT.exe --type=rendererprocesses appeared and the main window was restored (MainWindowHandlechanged from0to a non-zero value).This is now a recurring regression across multiple Codex/ChatGPT Windows updates on the same machine. The manual runtime repair works, but every new runtime ID can trigger the same failure again.
As a temporary mitigation, I have had to disable both update paths:
to prevent another update from making the desktop app unusable again.
This is quite disruptive because a normal automatic update can leave ChatGPT apparently running in the background while the UI is completely inaccessible.
Please prioritize a proper fix for the
cua_nodestaging/relocation path on Windows, including recovery from incomplete.staging-*runtimes. Users should not have to manually reconstruct the runtime or freeze application updates just to keep the desktop client usable.Sugarcgmade commentedon Sep 13, 2026
I am seeing a closely related issue on Windows 10 with Codex Desktop 26.903.9818.0 (and previously 26.903.8094.0).
Symptoms
After the update, Codex starts very slowly and repeatedly becomes unresponsive when moving the mouse over the window, clicking, or typing. If I leave it running instead of force-closing it, the UI may recover temporarily and then freeze again.
Diagnostics
bundled_executable_relocation_failed.rename_stagingEPERM%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\e7fe122ad3cbcd58The underlying reason Windows returns
EPERMfor the directory rename is still unknown.Workaround / confirmation
As a workaround, I manually copied the complete runtime from the installed package's
resources\cua_nodedirectory into the expected runtime destination, bypassing the failing staging-directory rename step.I verified:
After populating the runtime manually:
This strongly suggests that the runtime deployment/relocation failure is related to the UI hangs.
Suggested improvement
This would prevent a runtime deployment failure from making the entire desktop UI appear frozen.
lavine888 commentedon Sep 15, 2026
Update: 8th consecutive Store update, 8th failure — this is now shipping at a pace where every user with auto-update enabled is guaranteed a broken app.
New occurrence (2026-09-15):
6f12e0ef1c6e5061Same signature: multiple
ChatGPT.exeprocesses, no--type=renderer,MainWindowHandle = 0, main process burning ~2 cores, fresh.staging-6f12e0ef1c6e5061-*dirs missing onlybin\node_repl.exe. Same workaround fixes it (xcopy/G+ atomic install + AUMID relaunch, renderer up in ~30 s).One additional data point since my last comment: builds 26.908.4834.0 and 26.908.9136.0 (4123 files each) now stage all files via plain
xcopy /G— the >260-chartslib.es6.jsskip from builds 26.901.5280.0 → 26.903.9818.0 is gone. So path length was never the constant; the Application Protected attribute on the packagednode_repl.exeis the one and only consistent blocker across all 8 builds. Whatever fix lands needs to address that attribute (or stage the runtime from a non-encrypted source), not path handling.Also worth noting the release cadence: 26.903.9818.0 (Sep 11) → 26.908.4834.0 (Sep 12) → 26.908.9136.0 (Sep 15). Three broken updates in five days. Until this is fixed, each release re-bricks the app for affected machines — a staging retry cap plus a visible "runtime staging failed" error would at least make the failure diagnosable for normal users.
shkero commentedon Sep 18, 2026
One factor worth checking is whether Codex is installed on the system drive or a secondary drive.
I compared two Windows machines: Codex’s package files were encrypted on the machine where it was installed on D: (the non-system drive), but unencrypted on the machine where it was installed on C: (the system drive).
I had encountered EFS-related failures when Codex copied its bundled resources. Moving the affected installation from D: to C: resolved the problem for me, and Codex started normally afterward.
Microsoft documents that MSIX encrypts package files on non-system package volumes, while the system package volume is exempt: [MSIX PackageVolume: How Package Storage Works](https://devblogs.microsoft.com/insidemsix/msix-packagevolume/).
This may help explain why some installations encounter protected-file copying problems while others do not.
TarryFu commentedon Sep 20, 2026
Update: the issue recurred again on
26.911.7940.0, after I had already tried to disable automatic updatesI have now reproduced this same
cua_nodestaging failure across multiple Codex/ChatGPT Windows versions. This time there is an additional finding that may be relevant: I had already tried to stop automatic updates after the previous recurrence, but Windows still updated the package, and the next update triggered the same no-UI failure again.Update controls already configured
After the previous failure, I configured both of the following:
and:
The first setting was definitely effective for the Codex in-app updater. Subsequent Codex logs consistently showed:
So the later update was not initiated by the Codex in-app updater.
For the Store setting,
AutoDownload=2was still present when I checked it. However, this machine is using a Windows Home China SKU (build26200), and the setting did not appear as an effective policy underPolicyManager\currentor ingpresult. Therefore, I cannot confirm that this Store policy was actually enforced on this Windows edition.Windows still updated Codex through the Windows Update / Store path
The Windows Store / Install Service event logs show that the later updates were initiated by Windows Update Orchestrator /
MoUsoCoreWorker, for example:On September 17, Windows downloaded and installed:
The download size recorded by the Store Install Service was:
and AppXDeploymentServer subsequently recorded:
The package update itself completed successfully.
Immediately afterward, the same
cua_nodefailure occurred againAfter
26.911.7940.0was installed, launching ChatGPT produced background processes but no UI:The new expected runtime was:
Two consecutive staging attempts were created:
Both failed in exactly the same state:
At the same time, the files bundled inside the installed MSIX were complete:
So this was again a failure while materializing/relocating the bundled
cua_noderuntime, not a missing file in the package itself.The same manual workaround fixed it again
With all
ChatGPT.exeprocesses stopped, I manually copied the packagedcua_nodedirectory into:using
xcopy /G.Result:
I then verified SHA-256 equality between the package source and the rebuilt runtime for:
After that, ChatGPT launched normally and the UI immediately returned.
Current failure chain
The sequence on this machine is now effectively:
This is particularly disruptive because the workaround only repairs the current runtime hash. A later package update introduces another runtime hash and the same failure can occur again.
It would be very helpful if the Windows runtime materialization path could be fixed so that protected/MSIX-packaged files can be copied reliably without requiring manual
xcopy /G.It would also be useful for the app to detect an incomplete
.staging-*runtime and report the actual relocation/copy failure instead of remaining indefinitely as responsive background processes with no window.Finally, since disabling the Codex in-app updater does not prevent Windows Update / Store servicing from replacing the MSIX package, a supported way to temporarily defer desktop-app updates would also be valuable for users affected by a version-dependent startup regression like this.
lavine888 commentedon Sep 25, 2026
Update: 9th failure on my machine with the current latest build, plus one new data point that may explain why this bug is hard to reproduce consistently internally.
New occurrence (2026-09-25):
26.917.8451.0, runtime id7f75cff94511d5f8(node bumped to v24.21.0). Same signature as all previous occurrences (no renderer,MainWindowHandle = 0, staging dirs missing onlybin\node_repl.exe), samexcopy /Gworkaround fixes it. Two changes in this build: the bundled runtime shrank from 4123 to 2283 files, and the whole manual repair now takes ~7 minutes.The interesting part: between my 8th failure (26.908.9136.0, Sep 15) and this one, an intermediate build staged its runtime (
f53823cd54b14f45) successfully on its own around Sep 23 — the first build since late August that didn't brick the app. But @TarryFu reports26.911.7940.0failing on their machine (Sep 20). That leaves two possibilities:node_repl.exe— i.e. the attribute comes and goes per packaging run, which would match the "some builds break, some don't" pattern across this thread; orEither way, it reinforces that the trigger is the (intermittently present) Application Protected / EFS attribute on the packaged
node_repl.exe, and that a fix in the staging logic (decrypted-copy fallback, or shipping the runtime unencrypted) would make this whole class of failures disappear. The ask from my previous comment stands: even without a full fix, a staging retry cap plus a visible "runtime staging failed" error would stop users from seeing a silently bricked app.