Desktop app (Windows): runtime extraction after every update takes 15+ min at ~5 files/sec, looks like a hang
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Title suggestion: Desktop app (Windows): runtime extraction after every update takes 15+ min at ~5 files/sec, looks like a hang
Environment:
- Windows 11 Home China 10.0.26200
- ChatGPT desktop (MSIX) v26.908.4834.0 (reproduced on v26.901 and v26.903 as well)
Symptom:
After every app update, the first launch shows no window for ~15 minutes. The process tree is alive and burning CPU, so it looks like a hang. Users (me included) assume it crashed and force-kill it — which restarts the copy from scratch on the next launch, making it look like an infinite hang loop.
Live diagnosis (v26.908, today):
- Monitoring
%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\.staging-<hash>-<rand>\during a "hung" launch shows the app re-copying ~4,700 files from the encrypted MSIX:- measured live: 2,436 → 2,486 files in 10s = 5.2 files/sec (~15 min total for 4,684 files)
- app CPU clearly active during the copy (8.1 CPU-seconds in a 10s window)
- small-file write benchmark on the same machine/disk: ~290 files/sec — so the bottleneck is not disk I/O
- After the copy finishes (~15 min), the app promotes the staging dir to the final hash dir, cleans up staging, and starts normally.
- Manually extracting
app/resources/*from a downloaded plaintext MSIX into the target hash directory skips the copy entirely and the app starts in seconds — confirming the bottleneck is the per-file decrypt/copy of MSIX-encrypted resources, not antivirus or disk.
Impact:
Every user hits this on every update. The windowless 15-minute "hang" after updates reads as a crash, and force-killing makes it worse. This is very likely generating a steady stream of "app won't start" support load and uninstalls.
Suggestions:
- Show a progress indicator (or any window) while extracting runtime files after an update
- Cache/reuse unchanged files between versions instead of re-copying all ~4,700
- Or ship runtimes as plaintext payload so no per-file decrypt is needed
Happy to provide logs if useful. This has reproduced consistently across the last 4 app updates.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source file or test is named in the report. Begin by reproducing an update on Windows and tracing extraction into the runtime staging directory, using the reported ~4,700 files and 15-minute delay as a baseline. Done should address the windowless post-update startup experience and prevent active extraction from being mistaken for a hang.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop-dev, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100