Repository navigation
Computer Use unavailable on Windows: Application Protected files fail to copy from WindowsApps #34764
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.715.9868.0
What subscription do you have?
plus
What platform is your computer?
Windows 11 x64
What issue are you seeing?
Codex Computer Use fails on Windows when relocating Application Protected runtime files
Summary
Codex Desktop for Windows cannot initialize the bundled Computer Use plugin because the app fails while relocating the bundled cua_node runtime from the MSIX/WindowsApps installation directory into the per-user runtime cache.
The source files are marked by Windows as Encrypted with compatibility level Application Protected. Both Codex's Node-based copy operation and standard Windows copy operations fail when copying these files to an ordinary user-writable destination.
As a result, the Node REPL MCP backend is not exposed, the Computer Use helper/transport paths remain unavailable, and list_apps cannot be called.
Environment
- OS: Windows 11 x64
- Codex Desktop before reinstall:
26.715.8383.0 - Codex Desktop after reinstall:
26.715.9868.0 - Computer Use plugin:
26.715.61943 - Install type: Microsoft Store / MSIX
- Install path shape:
C:\Program Files\WindowsApps\OpenAI.Codex_<version>_x64__<publisher>\app
- Runtime cache:
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node
No VS Code Codex extension was present, so this report concerns the Codex Desktop app only.
Reproduction
- Install and start Codex Desktop from Microsoft Store.
- Enable or invoke the bundled Computer Use plugin.
- Ask Computer Use to list controllable applications.
- Observe that
list_appsis unavailable because the Node REPL backend is not loaded.
Expected behavior
Codex should relocate or otherwise expose the bundled cua_node runtime, initialize the Computer Use runtime, and make list_apps available.
Actual behavior
The runtime relocation fails while copying an encrypted source file such as bin\CHANGELOG.md into a generated staging directory:
bundled_executable_relocation_failed
errorCode=UNKNOWN
errorMessage="Bundled executable relocation failed during copy_directory"
executableName=node.exe
operation=copy_directory
originalError={
"errno": -4094,
"code": "UNKNOWN",
"syscall": "copyfile",
"path": "C:\\Program Files\\WindowsApps\\OpenAI.Codex_<version>_x64__<publisher>\\app\\resources\\cua_node\\bin\\CHANGELOG.md",
"dest": "%LOCALAPPDATA%\\OpenAI\\Codex\\runtimes\\cua_node\\.staging-<hash>\\bin\\CHANGELOG.md"
}
sourceKind=windowsapps
This is immediately followed by:
[computer-use-native-pipe] computer-use native pipe helper paths unavailable
missingHelperPath=true
missingTransportModulePath=true
platform=win32
The bundled plugin marketplace shows the same failure pattern when copying .app.json from WindowsApps into %USERPROFILE%\.codex\.tmp:
plugin_marketplace_folder_write_failed
errorMessage="UNKNOWN: unknown error, copyfile '<WindowsApps>\\plugins\\sites\\.app.json' -> '%USERPROFILE%\\.codex\\.tmp\\bundled-marketplaces\\...\\plugins\\sites\\.app.json'"
Encryption evidence
cipher /c reports the failing source files as encrypted and Application Protected:
Attributes : Archive, Encrypted
E CHANGELOG.md
Compatibility Level:
Application Protected
E .app.json
Compatibility Level:
Application Protected
The destination runtime and plugin cache directories are ordinary unencrypted directories.
Reading and hashing the source files succeeds, showing that the files exist and are readable. Copying them fails:
Copy-Item : The specified file could not be encrypted.
An EFS raw copy also fails before copying any files:
robocopy ... /EFSRAW
ERROR 6000 (0x00001770) Accessing Destination Directory
The specified file could not be encrypted.
Files : 0 copied
Using xcopy /G successfully creates decrypted copies. A full cua_node copy produced 3,558 destination files, and SHA-256 hashes for manifest.json, node.exe, node_repl.exe, codex-computer-use.exe, and helper_transport.js matched their packaged sources.
However, after restarting Codex, the app still performs its own copy into a new .staging-<hash> directory. That internal copy fails again, and Codex reports missing Computer Use helper paths despite the complete runtime already being present in the cache root.
Troubleshooting already performed
- Confirmed the Computer Use plugin and
computer-use-client.mjsentry point exist. - Confirmed Chrome/Computer Use failure is not caused by a missing installation package.
- Confirmed current sandbox setup runs complete with
errors=[]. - No current
os error 740failure. - No current native pipe
os error 2failure. - No current
SetNamedSecurityInfoW failed: 5failure. - Used Windows Settings Repair and restarted Codex: no change.
- Uninstalled and reinstalled Codex from Microsoft Store to the system drive.
- Reinstall updated Codex from
26.715.8383.0to26.715.9868.0: no change. - Confirmed the post-reinstall failure has the same protected-source
copyfilesignature. - Copied the complete runtime with
xcopy /Gand verified file counts and hashes: Codex still retries and fails its own relocation step.
Likely root cause
Codex's Windows bundled-runtime relocation path uses a copy implementation that does not allow an encrypted/Application Protected source to be copied to an unencrypted destination. It returns Node/Win32 error UNKNOWN (-4094) rather than falling back to a decrypted-destination copy equivalent to Windows xcopy /G or COPY_FILE_ALLOW_DECRYPTED_DESTINATION.
The runtime resolver treats relocation failure as fatal and returns no helper paths, even when a complete verified runtime already exists at the cache destination.
Suggested product fixes
- When the Windows source has Application Protected encryption, copy using a method that explicitly allows a decrypted destination.
- Surface the underlying Windows error (
ERROR_ENCRYPTION_FAILED/ error 6000, if applicable) instead of onlyUNKNOWN (-4094). - Validate and reuse an already complete runtime cache before attempting relocation again.
- Apply the same protected-file handling to bundled plugin marketplace synchronization.
- Add a Windows regression test using an encrypted/Application Protected source tree and an unencrypted destination.
Safety note
No registry, WindowsApps source file, ACL, application manifest, or Windows encryption policy was modified during troubleshooting. The manually copied runtime cache remains in place for inspection.
What steps can reproduce the bug?
Codex Computer Use fails on Windows when relocating Application Protected runtime files
Summary
Codex Desktop for Windows cannot initialize the bundled Computer Use plugin because the app fails while relocating the bundled cua_node runtime from the MSIX/WindowsApps installation directory into the per-user runtime cache.
The source files are marked by Windows as Encrypted with compatibility level Application Protected. Both Codex's Node-based copy operation and standard Windows copy operations fail when copying these files to an ordinary user-writable destination.
As a result, the Node REPL MCP backend is not exposed, the Computer Use helper/transport paths remain unavailable, and list_apps cannot be called.
Environment
- OS: Windows 11 x64
- Codex Desktop before reinstall:
26.715.8383.0 - Codex Desktop after reinstall:
26.715.9868.0 - Computer Use plugin:
26.715.61943 - Install type: Microsoft Store / MSIX
- Install path shape:
C:\Program Files\WindowsApps\OpenAI.Codex_<version>_x64__<publisher>\app
- Runtime cache:
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node
No VS Code Codex extension was present, so this report concerns the Codex Desktop app only.
Reproduction
- Install and start Codex Desktop from Microsoft Store.
- Enable or invoke the bundled Computer Use plugin.
- Ask Computer Use to list controllable applications.
- Observe that
list_appsis unavailable because the Node REPL backend is not loaded.
Expected behavior
Codex should relocate or otherwise expose the bundled cua_node runtime, initialize the Computer Use runtime, and make list_apps available.
Actual behavior
The runtime relocation fails while copying an encrypted source file such as bin\CHANGELOG.md into a generated staging directory:
bundled_executable_relocation_failed
errorCode=UNKNOWN
errorMessage="Bundled executable relocation failed during copy_directory"
executableName=node.exe
operation=copy_directory
originalError={
"errno": -4094,
"code": "UNKNOWN",
"syscall": "copyfile",
"path": "C:\\Program Files\\WindowsApps\\OpenAI.Codex_<version>_x64__<publisher>\\app\\resources\\cua_node\\bin\\CHANGELOG.md",
"dest": "%LOCALAPPDATA%\\OpenAI\\Codex\\runtimes\\cua_node\\.staging-<hash>\\bin\\CHANGELOG.md"
}
sourceKind=windowsapps
This is immediately followed by:
[computer-use-native-pipe] computer-use native pipe helper paths unavailable
missingHelperPath=true
missingTransportModulePath=true
platform=win32
The bundled plugin marketplace shows the same failure pattern when copying .app.json from WindowsApps into %USERPROFILE%\.codex\.tmp:
plugin_marketplace_folder_write_failed
errorMessage="UNKNOWN: unknown error, copyfile '<WindowsApps>\\plugins\\sites\\.app.json' -> '%USERPROFILE%\\.codex\\.tmp\\bundled-marketplaces\\...\\plugins\\sites\\.app.json'"
Encryption evidence
cipher /c reports the failing source files as encrypted and Application Protected:
Attributes : Archive, Encrypted
E CHANGELOG.md
Compatibility Level:
Application Protected
E .app.json
Compatibility Level:
Application Protected
The destination runtime and plugin cache directories are ordinary unencrypted directories.
Reading and hashing the source files succeeds, showing that the files exist and are readable. Copying them fails:
Copy-Item : The specified file could not be encrypted.
An EFS raw copy also fails before copying any files:
robocopy ... /EFSRAW
ERROR 6000 (0x00001770) Accessing Destination Directory
The specified file could not be encrypted.
Files : 0 copied
Using xcopy /G successfully creates decrypted copies. A full cua_node copy produced 3,558 destination files, and SHA-256 hashes for manifest.json, node.exe, node_repl.exe, codex-computer-use.exe, and helper_transport.js matched their packaged sources.
However, after restarting Codex, the app still performs its own copy into a new .staging-<hash> directory. That internal copy fails again, and Codex reports missing Computer Use helper paths despite the complete runtime already being present in the cache root.
Troubleshooting already performed
- Confirmed the Computer Use plugin and
computer-use-client.mjsentry point exist. - Confirmed Chrome/Computer Use failure is not caused by a missing installation package.
- Confirmed current sandbox setup runs complete with
errors=[]. - No current
os error 740failure. - No current native pipe
os error 2failure. - No current
SetNamedSecurityInfoW failed: 5failure. - Used Windows Settings Repair and restarted Codex: no change.
- Uninstalled and reinstalled Codex from Microsoft Store to the system drive.
- Reinstall updated Codex from
26.715.8383.0to26.715.9868.0: no change. - Confirmed the post-reinstall failure has the same protected-source
copyfilesignature. - Copied the complete runtime with
xcopy /Gand verified file counts and hashes: Codex still retries and fails its own relocation step.
Likely root cause
Codex's Windows bundled-runtime relocation path uses a copy implementation that does not allow an encrypted/Application Protected source to be copied to an unencrypted destination. It returns Node/Win32 error UNKNOWN (-4094) rather than falling back to a decrypted-destination copy equivalent to Windows xcopy /G or COPY_FILE_ALLOW_DECRYPTED_DESTINATION.
The runtime resolver treats relocation failure as fatal and returns no helper paths, even when a complete verified runtime already exists at the cache destination.
Suggested product fixes
- When the Windows source has Application Protected encryption, copy using a method that explicitly allows a decrypted destination.
- Surface the underlying Windows error (
ERROR_ENCRYPTION_FAILED/ error 6000, if applicable) instead of onlyUNKNOWN (-4094). - Validate and reuse an already complete runtime cache before attempting relocation again.
- Apply the same protected-file handling to bundled plugin marketplace synchronization.
- Add a Windows regression test using an encrypted/Application Protected source tree and an unencrypted destination.
Safety note
No registry, WindowsApps source file, ACL, application manifest, or Windows encryption policy was modified during troubleshooting. The manually copied runtime cache remains in place for inspection.
What is the expected behavior?
No response
Additional information
No response
Activity
github-actions commentedon Jul 22, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
wantknowmore commentedon Aug 10, 2026
Reproduced on another Windows 11 Microsoft Store installation and this also causes noticeably slow app startup.
Environment:
Observed startup timing from the desktop log:
The relocation failures repeatedly include rg.exe, codex.exe, and the cua_node runtime:
Independent reproduction (redacted paths): the package source exists, but copying
...\\WindowsApps\\OpenAI.Codex_...\\app\\resources\\rg.exeto an ordinary user-writable directory fails with:The destination cache directories are writable, so this does not appear to be ordinary user-cache permissions. No active reconnect/network failure was present in this startup. This extends the impact beyond Computer Use: the repeated relocation attempts materially delay first usable UI.
Yajuju207 commentedon Aug 11, 2026
I reproduced this issue and found a working workaround on my machine that may help narrow the root cause.
Environment
10.0.26200.8875CoreCountrySpecificOpenAI.Codex_26.803.10989.0_x64__2p2nqsd0c76g022606.1401.13.01.29.280.0Before the workaround:
The bundled marketplace copy did contain
computer-use, but the CUA runtime relocation did not complete and no Computer Use backend process was present.Important AppxVolume finding
The surprising part was that
Get-AppxPackage OpenAI.Codexreported anInstallLocationshaped like:but the package was actually registered on my non-system D: AppxVolume.
The AppX deployment log also explicitly showed
target volume D:.My volumes were:
A control machine with the same Windows build, same Store/App Installer versions, and a working Computer Use installation had Codex on the system AppxVolume and its packaged
node_repl.exewas reported asU(unencrypted).Workaround that restored Computer Use
I fully exited Codex and moved the already-installed package to the system AppxVolume using the built-in Appx cmdlet:
Then I verified:
After reopening Codex, Computer Use immediately appeared in the Plugins UI and could be installed. I then confirmed that it actually worked by using Computer Use to open Notepad and type text.
So on this machine, moving Codex from a non-system AppxVolume to the system AppxVolume was sufficient to restore Computer Use, even though the ordinary
InstallLocationstring had previously looked like a C:\WindowsApps path.This may be useful as both a workaround and a diagnostic clue:
InstallLocationalone did not reveal the actual AppxVolume association.Get-AppxPackage -Volume ...and the AppX deployment log did.I did not modify WindowsApps ACLs, ownership, EFS state, package files, registry values, or
app.asar.Yajuju207 commentedon Aug 11, 2026
I published the AppxVolume diagnostic/workaround from my reproduced case as a small public repository:
https://github.com/Yajuju207/codex-windows-appxvolume-fix
It includes:
diagnose.ps1: read-only checks for the actual AppxVolume association, packagedcua_nodestate, runtime file count, helper files, and recent AppX deployment evidence.fix-appxvolume.ps1: guardedMove-AppxPackageworkaround; dry-run by default and only performs the move with-Apply.docs/case-study.md: sanitized before/after evidence from the failing non-system AppxVolume state and the working system AppxVolume state.The repository deliberately does not modify WindowsApps ACLs/ownership, decrypt package files, patch
app.asar, or redistribute OpenAI binaries.For my machine, moving Codex from the non-system AppxVolume to the system AppxVolume was sufficient for Computer Use to reappear in Plugins and work successfully.
zemeng5208 commentedon Aug 12, 2026
I maintain WinBridge Recovery, an independent Windows recovery tool for Codex Desktop: https://github.com/zemeng5208/winbridge-recovery
This issue is very close to one of the local failure classes the project is designed to diagnose. In v3.1.1, WinBridge already resolves the currently installed Store package, builds a user-writable verified resource mirror, uses byte-stream
FileStreamcopying with SHA-256 verification, and checks the bundled marketplace / plugin cache /latest/ CUA runtime / Native Host layers before deciding whether to repair anything.The Application Protected / EFS path is still explicitly Experimental in the project; I do not consider it a guaranteed fix yet. The newer AppxVolume finding in this thread is particularly useful:
InstallLocationalone is not sufficient, so I am treating the actual AppxVolume association and protection state as an important diagnostic signal rather than assuming everyC:\Program Files\WindowsApps\...path is equivalent.For machines where the failure is local relocation/cache/marketplace drift, WinBridge may be useful for diagnosis and safe staged recovery/rollback from the official package already installed on that machine. It does not modify WindowsApps ACLs/ownership, decrypt or patch the Store package, and it will not fix an upstream Computer Use runtime bug once the local runtime has been provisioned correctly.
MickeyWzt commentedon Aug 15, 2026
Additional physical-volume A/B evidence from an affected Windows 11 machine:
Get-AppxPackagereported the usualC:\Program Files\WindowsApps\OpenAI.Codex_<version>...install path, but that package directory was a junction whose physical target wasD:\WindowsApps\OpenAI.Codex_<version>....C:under%LOCALAPPDATA%\OpenAI\Codexand%USERPROFILE%\.codex.errno=-4094,code=UNKNOWN,syscall=copyfile,sourceKind=windowsappssignature described here. At the time, the Desktop package was on a26.803build while local bundled plugin/runtime material still contained26.623artifacts.C:directory rather than a junction toD:. The next Store update (26.810.6296.0 -> 26.810.7004.0) stayed physically onC:and the original cross-volume-4094signature was no longer the active failure.This does not prove that all D-drive installations fail, or that cross-volume placement is required for the protected-file bug. It does confirm that a non-system AppX volume was a trigger in at least one reproducible environment and that returning the package to the system volume removed that trigger.
I documented the complete two-layer postmortem (protected-file relocation plus a separate persisted-marketplace conflict exposed by the next Store update) here:
https://gist.github.com/MickeyWzt/416bd69fa28b59c65aaec37aed9b34d1
Xyntel-632 commentedon Aug 21, 2026
Reproduced on a newer Windows build, with the same protected-file/runtime relocation pattern and a much larger impact on startup responsiveness.
Environment
26.818.3698.026.818.31338(released Aug 21, 2026)26200.9168AppxVolume / cross-volume correlation
My packaged Codex resources are physically being accessed from
D:\WindowsApps\OpenAI.Codex_..., while the per-user runtime destination is onC:under:That appears consistent with the non-system AppxVolume / cross-volume pattern reported above in this thread.
User-visible impact
On this build, the problem is not limited to Computer Use being unavailable. The entire ChatGPT desktop app repeatedly becomes Not Responding during startup and can take roughly 40 minutes to become usable. Restarting often re-enters the same behavior.
Windows Error Reporting logged:
WinDbg evidence
I captured a full user-mode dump while
ChatGPT.exewas actively hung.!analyze -hangreported:Relevant stack:
Inspecting the
NtCreateFileparameters identified the blocked target as:Procmon reproduction
Sysinternals Process Monitor independently captured the same operation:
The target was the same
.staging-...\bin\corepackpath. Multiple attempts showed the same ~20 second delay beforeACCESS DENIED.I then renamed the existing local
cua_nodedirectory and let the app rebuild it from scratch. The behavior reproduced cleanly:.staging-dd584937042db7da-<random>directory was created;bin\corepackappeared at0 KB;.staging-*attempt was created later with the same runtime ID and a different random suffix.Encryption / independent copy test
cipher /creports the bundled WindowsApps sourcecorepackas encrypted:I also tested an elevated manual copy using:
Unlike the workaround reported in the original issue,
/Gdoes not succeed on this machine. It stalls for roughly two minutes, exits without the normal1 File(s) copiedconfirmation, and no destinationcorepackis created.So on
26.818.3698.0, this still looks closely related to the protected/Application Protected runtime relocation issue, with a strong additional correlation to a non-systemD:AppxVolume and with the impact now extending to repeated full-app startup hangs.I have preserved the full WinDbg dump, Procmon
.PML, WER details, and sanitized screenshots if maintainers need additional diagnostics.Update: Confirmed mitigation and before/after results are documented here: #34764 (comment)
Xyntel-632 commentedon Aug 22, 2026
Confirmed mitigation / before-after result
Following the earlier findings in this thread, I moved only the
OpenAI.Codexpackage from the non-systemD:AppxVolume to the systemC:AppxVolume using Windows' built-inMove-AppxPackage.Before the move
OpenAI.Codexwas registered onD:\WindowsApps(IsSystemVolume=False).Not Responding, or showed the crash screen.CopyFileW/uv_fs_copyfile.ACCESS DENIEDfailures while copyingcua_node\...\bin\corepack..staging-dd584937042db7da-*runtime directories.Mitigation
The operation ultimately completed successfully.
OpenAI.Codex_26.818.4152.0is now registered on the system C: AppxVolume withStatus: Ok, and no Codex package remains registered on the D: AppxVolume.After the move
cua_noderuntime directory was successfully created instead of another failed.staging-*directory.bin\corepackwas successfully deployed with a non-zero size (334 bytes).This is strong before/after evidence that, on this machine, installation on the non-system AppxVolume was triggering the protected-file/runtime-copy failure, and moving the package to the system AppxVolume resolved it.
OpenAI feedback/session ID for telemetry correlation:
no-active-thread-01a02688-33dd-75d0-b392-ee91c8b003c6Current installed Codex package tested:
26.818.4152.0Windows 11 build:
26200.9168ChenfeiXie commentedon Sep 5, 2026
Additional reproduction on Codex Desktop 26.901.5280.0 (Windows, Microsoft Store/MSIX), with a specific observation about the encrypted-copy fallback.
The bundled Browser manifest declares 26.901.41600 and the configuration references that version's
scripts/browser-service.mjs, but the corresponding cache directory was absent. Startup logs showplugin_marketplace_folder_write_failedduringcopy_plugins, copying the bundledplugins/sites/.app.jsoninto the marketplace staging directory. Similar failures were present across multiple app versions.Fallback condition appears not to match the actual error
Inspecting the installed app's
windows-file-copy-Dm31CRG0.js(read-only), the encrypted-copy fallback predicate requireserror instanceof Error && error.errno === 6000. The observed Node error is instead:{"code":"UNKNOWN","errno":-4094,"syscall":"copyfile"}Independent tests against the same packaged
.app.json:cipher /creportsEncrypted/Application Protected.CopyFileWcall fails withGetLastError() == 6000.fs.copyFilecall fails withUNKNOWN,errno: -4094, matching the desktop log. This test used the locally installed Node, not the app's embedded Electron runtime.windows_encrypted_copy_fallback_*messages were found in the examined September 5 desktop logs.This suggests that the existing stream-copy fallback is skipped because it checks the raw Win32 error number, while Node exposes a translated error. It would be useful to cover this error shape with a regression test, distinguishing an encryption-related UNKNOWN error from unrelated copy failures.
Minimal Node reproduction
Run against an affected Application Protected package file; substitute the actual package path:
The reported C: package directory on this machine is a junction to
D:\WindowsApps\..., which may be relevant to the AppxVolume observations above. Moving the package has not been tested here.Manually copying the current Browser plugin using data-only copying restored browser operation; all 382 source files matched SHA-256 hashes, and opening/reading a test page succeeded. This repairs the current cache, but does not fix the failing automatic marketplace synchronization. No installed application code, ACLs, or encryption policies were changed.
pyang1282-beep commentedon Sep 6, 2026
Additional affected build: 26.901.6511.0 — no startup window, many partial
cua_nodestaging directories, eventual recoveryReporting observations from my Windows machine on 2026-09-06. This appears related to this issue's protected-file relocation problem and extends the startup-hang reports above to 26.901.6511.0.
Environment
OpenAI.Codex_26.901.6511.0_x64__2p2nqsd0c76g0; the executable/window is named ChatGPT.OpenAI.CodexBeta_26.727.4816.0_x64__2p2nqsd0c76g0, reported working during the investigation.C:\Program Files\WindowsApps\OpenAI.Codex_26.901.6511.0_x64__2p2nqsd0c76g0.Observed startup state
At about 12:52 local time (UTC+8), the stable app had main, GPU, network, storage and crash-handler processes, but:
No window or actionable error appeared. The main process's recorded start time was 12:50:19.
The runtime cache under
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_nodecontained 22.staging-b474a88d5d105afa-*directories. Their last-write times ranged from 12:07:01 to 12:50:41. At the 12:55 inspection, those directories contained 174–3,341 files each, versus 4,684 files / approximately 322 MiB in the packagedapp\resources\cua_nodesource.Example sanitized snapshot:
Independent copy failure
During the same investigation, reading/hashing the packaged
cua_node\bin\node.exesucceeded, but copying that same file to%TEMP%\test-node.exewith PowerShellCopy-Itemfailed:These are the operations used (user paths replaced with environment variables):
The recorded copy test did not print a numeric HRESULT/Win32 code, so I am not treating error 6000 as independently captured in this specific test.
Eventual recovery and timing limits
The app subsequently opened during the investigation. At 13:01:06, inspection confirmed:
The prior staging directories no longer appeared in that final cache listing. This is roughly 51 minutes between the earliest staging timestamp and the final directory timestamp, with a working window confirmed afterward. It is not a measured 50-minute lifetime of one process: the observed main process started at 12:50:19. The directory snapshots do not establish whether earlier attempts were automatic retries, separate launches, or a mixture. They also do not establish why the eventual attempt succeeded, or guarantee that waiting will recover other launches.
Expected behavior / investigation request
The app should show usable startup UI promptly, or surface the underlying relocation error with a bounded retry policy. Please investigate the protected-source copy path and handling/reuse/cleanup of partial runtime staging directories.
The successful read plus failed copy is consistent with the encryption-related copy problem already reported here, but these observations alone do not prove the exact internal cause of every partial copy or the later recovery. A decrypted-destination/byte-copy fallback and a regression test for the actual Node error shape described in the preceding comment seem worth checking.
Related relocation reports: #38696 and #40700.
wmdl2 commentedon Sep 7, 2026
This report was prepared with AI assistance. The copy test results and log observations below are distinguished from the proposed root cause, which has not been confirmed by a maintainer.
Additional reproduction on Codex Desktop Windows 26.901.6511.0 (bundled CLI 0.153.4), Windows 11 x64 build 26200.
The bundled plugin materialization failure still reproduces on startup:
Copy comparison and a possible fallback predicate bug
For the same packaged
sites/.app.json(105 bytes, Windows attributesArchive, Encrypted), copying into a writable workspace directory produced:CopyFileW: failed;GetLastError()= 6000 (ERROR_ENCRYPTION_FAILED).fs.copyFileSync: failed;code = "UNKNOWN",errno = -4094,syscall = "copyfile".Read-only inspection of the installed
windows-file-copy-Dm31CRG0.jsshows that the existing stream-copy fallback is gated onerror instanceof Error && error.errno === 6000. It appears the Node error mapping prevents that fallback from being selected for this case. Nowindows_encrypted_copy_fallbackentries appeared in the inspected Desktop startup log.The bundled marketplace copy uses
Promise.allacross plugins, and thesitescopy rejection propagates to the marketplace resolution failure. This affects more than the individual failing plugin.The error comparison above was reproduced with the bundled Node executable, not by instrumenting Electron's live exception object; the Desktop logs independently show the same
UNKNOWNcopy failure. Please verify the mapping in Electron as well before changing the predicate. A narrowly scoped encrypted-source fallback would be preferable to treating everyUNKNOWNerror as an encryption failure.Current scope
node_replreportsreadyand responds to calls, and the configured Computer Use native pipe exists with astartup readylog. Plugin materialization remains the blocker under investigation. Separately, a missing bundled@oai/skytslib fragment in the relocated runtime was restored from the identical installed runtime version and its hash verified;@oai/skythen imported successfully. This did not resolve the plugin copy failure.As a manual troubleshooting experiment, a byte-for-byte workspace copy of all 849 bundled plugin files was created; it passed SHA-256 checks and a complete Node
fs.cptest. Trying the source-visibleCODEX_ELECTRON_BUNDLED_PLUGINS_RESOURCES_PATHprocess environment override did not change the source used by the packaged Desktop after launch, so this experiment did not resolve the issue. This manual copy and environment override should not be interpreted as a routine setup step or an officially supported repair.During this investigation, we did not modify WindowsApps source files, ACLs, Windows protection settings, or marketplace registration. This statement is limited to the actions performed during this investigation, not the machine's prior history. Usernames and machine-specific paths are redacted here.
Ink-Paper commentedon Sep 19, 2026
Additional reproduction on ChatGPT/Codex Windows package 26.915.4065.0, bundled Chrome plugin 26.915.31945, tested bundled Node v24.21.0. This adds current-version confirmation, Chrome side-panel impact, and a test of the installed fallback helper itself to the earlier findings in this issue.
This report was prepared with AI assistance. The measurements below were reproduced locally; the desktop-process explanation is based on logs and read-only inspection, not confirmation by a maintainer.
Chrome side-panel impact after updates
The side panel reports:
An earlier occurrence reported a missing required
nodePath. Native messaging uses the official per-package Windows app execution alias, but bothchrome-native-hosts-v2.jsonfiles retain superseded package/runtime paths. The materialized bundled marketplace remains at 26.810.41047.Desktop logs on 2026-09-19 show:
Independently measured copy behavior
For the same encrypted bundled source file:
EFS is enabled and running. Same-volume, cross-volume and physical-source-path tests reproduced the failure. The package is physically on D: with a registered C: WindowsApps junction; this is not a claim that moving the package via AppX deployment would fail—we have not tested that workaround.
Installed helper and complete-bundle test
The shipped
windows-file-copy-B0DNtkPq.jsenables its stream fallback only whenerror.errno === 6000.An isolated harness loaded that installed helper unchanged:
fs.cpcallback failed with -4094; no fallback event occurred.windows_encrypted_copy_fallback_startedandwindows_encrypted_copy_fallback_succeeded.This was standalone Node, not injected into the running Electron process. It validates the complete copy stage, not end-to-end desktop synchronization.
Why registration remains stale
Read-only control-flow inspection shows marketplace materialization failure returns
hadReconcileFailure: truebefore later plugin/version reconciliation and Chrome native-host registration. The Chrome CLI/runtime staging path also uses the same copy helper.A local manifest repair restored native-host hello/ensure and WebSocket app-server initialize, but it does not fix the next update. No app binaries, ACLs, certificates or encryption policies were modified, and no scheduled repair task was installed.
Please verify the Node/Electron error mapping and enable the existing fallback for verified encrypted bundled resources (or use CopyFileExW with the decrypted-destination flag), while preserving errors for unrelated UNKNOWN failures. Regression coverage should include full marketplace copy, CLI staging, plugin reconciliation and Chrome manifest refresh across an app upgrade.
Related Chrome registration symptoms: #42520.