macOS Desktop 26.901.51231: intermittent beachball with CPU-busy main thread during multiwindow activity
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using?
26.901.51231 (build 8109), macOS bundle identifier com.openai.codex, display name ChatGPT. The version was verified from the installed bundle and the captured process sample.
Platform
Apple Silicon (ARM64), macOS 27.0 (26A5425a), 64 GiB RAM.
Issue
The Codex desktop UI intermittently becomes unresponsive with the macOS spinning wait cursor. This disrupts ordinary task navigation and use. Archiving repetitive completed tasks has not resolved the intermittent hangs.
A process capture was taken on 7 September 2026 while the user confirmed the spinning wheel was still visible. It shows the main application thread busy executing callbacks, rather than predominantly blocked in an OS wait.
Observed circumstances / reproduction status
A deterministic minimal reproduction is not yet available. In the captured episode:
- The desktop app had multiple windows; logs identified four visible window IDs in the surrounding two minutes.
- A new renderer launched about seven seconds before the process samples began.
- The UI showed the spinning wait cursor during the capture.
- Several initialization requests from one window completed together after approximately 6.8 seconds.
Opening another window / restoring its state is a candidate trigger, not a confirmed cause. A one-window versus multiple-window comparison has not yet established causality.
Evidence captured during the freeze
- Main application process CPU snapshot: 99.2% of one core; RSS approximately 865 MiB.
- 291 of 321 main-thread samples were beneath Node's immediate-callback execution path; 276 ended in unnamed/JIT frames; only 6 had wait-related leaves.
- Newly started renderer: 231 of 305 samples ended in unnamed/JIT frames; 64 had wait-related leaves.
- Older sampled renderer: 287 of 313 samples were Mach-message waits.
- The Codex backend CPU snapshot was 0.2%, RSS approximately 2.15 GiB.
- Swap usage: zero.
- Five requests (
remoteControl/enable,experimentalFeature/enablement/set,experimentalFeature/list,configRequirements/read,config/read) completed at nearly the same time with durations 6,777–6,808 ms. - The nearby bounded app-log tails contained 13 occurrences of
ResizeObserver loop completed with undelivered notifications. - The saved bounded log tails contained no
SQLITE_BUSY/database-lock or missing-file lines.
The CPU numbers are point-in-time snapshots, not measured peaks. Chromium symbols have large offsets and JIT frames are unnamed, so the samples do not identify the precise JavaScript function. The layout errors are correlated symptoms, not proof of the cause.
Expected behavior
Window initialization, task switching and background events should not saturate the main UI thread long enough to make macOS display a wait cursor. Expensive state processing should be bounded/yielding so input remains responsive.
Cleanup already tried
Recoverable archival of repeated completed run conversations and two stale imported test conversations referencing a deleted temporary workspace. Intermittent hangs continued. There is no evidence that the Claude origin of imported project folders is itself responsible.
Related reports
Possibly related UI-performance symptoms: #33782 (macOS task activation / ResizeObserver), #33996 (Windows reasoning-summary / ResizeObserver correlation). This report adds a capture from build 8109 during an actual macOS freeze with a CPU-busy main thread and a newly launched renderer. It does not establish the same root cause.
Privacy / diagnostics
Three successful macOS sample captures, process resource snapshots and bounded error counts are preserved locally. No raw transcripts, client information, personal filesystem paths, account identifiers, private network addresses or full logs are included in this public report. Redacted stack excerpts can be provided if maintainers specify what is useful.
Please investigate main-thread work during window initialization/state delivery and advise whether an existing fix or supported mitigation applies to this build.
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 file or test is identified in the report. Start with the desktop app's window initialization and state-delivery entry points, using the preserved macOS sample captures and the Node immediate-callback samples; done means identifying the main-thread work causing the freeze and establishing a reproducible fix or supported mitigation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, node.js, rust
- Domain
- desktop, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100