Repository navigation
macOS desktop: primary window stuck on loading screen while tasks continue; New Window recovers but browser state is lost #37550
Description
What version of the Codex App are you using (From “About Codex” dialog)?
ChatGPT/Codex Desktop 26.803.41515 (CFBundleVersion 6321)
What subscription do you have?
Pro
What platform is your computer?
Darwin 25.5.0 arm64 arm
macOS 26.5.2 (build 25F84)
What issue are you seeing?
The primary ChatGPT/Codex desktop window intermittently becomes stuck on the blank initial loading screen (gray/white background with the OpenAI logo). This occurred several times on August 8, 2026.
The application process itself does not exit, and active Codex tasks continue running in the background. Selecting File > New Window opens a functioning window where the task and its in-progress output remain available. However, the original window does not recover, and the in-app browser tabs/state from that window are not restored in the new window.
A screenshot was captured at approximately 16:09 JST. Local desktop logs immediately before and during the occurrence showed repeated primary-renderer errors:
[desktop-notifications][global-error] ResizeObserver loop completed with undelivered notifications.
rendererWebContentsId=1
rendererWindowAppearance=primary
rendererWindowFocused=true
rendererWindowVisible=true
The errors appeared repeatedly from approximately 07:06:49 through 07:08:26 UTC. During the same period, AppServer responses continued successfully with errorCode=null and targetDestroyed=false, including thread reads, turn updates, and browser-session lifecycle events.
No new macOS ChatGPT/Codex crash diagnostic report was generated for these occurrences.
The logs also contain failures restoring in-app browser navigation history with ERR_FAILED. Raw logs are not attached publicly because they contain conversation and local environment metadata.
What steps can reproduce the bug?
The issue is intermittent, but the observed sequence is:
- Run the macOS ChatGPT/Codex desktop app with several Codex tasks active and in-app browser tabs open.
- Switch between tasks and use the in-app browser during normal work.
- The primary window occasionally clears and becomes stuck indefinitely on the initial loading screen.
- Wait; the original window does not recover.
- Choose File > New Window.
- The newly created window loads correctly and shows that the active Codex task continued running.
- The in-app browser tabs/state from the original window are absent.
Feedback with the current session diagnostics was uploaded under:
Feedback ID: 019f7b28-e4fe-7fb1-858a-95fd1dda8719
What is the expected behavior?
The primary renderer should remain usable while tasks and in-app browser sessions are active.
If the renderer must reload, it should recover automatically without remaining on the loading screen. Active task state and in-app browser tabs/navigation history should be preserved or restored in a replacement window.
Additional information
This appears to be a primary-window renderer/UI-state failure rather than a full application or app-server crash:
- Active Codex work continues in the background.
- A fresh window can reconnect to the running task.
- The original window alone remains unusable.
- No corresponding macOS crash report was created.
- Repeated
ResizeObservererrors correlate with the failure window.
Possibly related, but not exact duplicates:
- Windows Desktop: concurrent reasoning summaries correlate with ResizeObserver loops and UI freezes #33996 — same ResizeObserver error and UI freezing, but on Windows
- macOS Desktop 26.715.31925: model selector disappears and prompts stop sending after switching between 2-3 chats #34255 — macOS renderer/composer state desynchronization after switching chats
- Codex Desktop (macOS): renderer OOM crash loop (~5 min) with many concurrent threads — unbounded thread history retention, post-reload refetch storm, 170+ leaked renderer processes #34890 — macOS window blanks/reloads during heavy multi-thread use, but that report includes confirmed renderer OOM crashes
This report differs because the app remains alive, the task continues, no OOM/crash evidence was found, and New Window is a partial recovery that loses the in-app browser state.
Activity
github-actions commentedon Aug 8, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
juncoflockleader commentedon Aug 11, 2026
I reproduced this exact failure on Codex Desktop
26.803.41515(build6321), macOS arm64.The desktop window became stuck indefinitely on the logo/loading screen, while active tasks continued normally and remained controllable remotely from my phone. There was no macOS crash report, system memory pressure, or evidence of a backend failure.
Additional diagnostics strongly correlate the renderer failure with unbounded local task history:
thread/turns/listfor the 6.1 GB task took roughly 13.5–14.2 seconds, versus approximately 0.6 seconds for the smaller tasks[persisted-atom] host did not respond to sync requestConversation state not foundReceived turn/started for unknown conversationReceived turn/completed for unknown conversationResizeObserver loop completed with undelivered notificationsA sample of the oversized transcript showed most growth came from inline image-generation records and large function/tool outputs, including individual records exceeding 20 MB.
Recovery evidence:
thread/archiveAPIokThis appears to be renderer/state-hydration overload rather than an app-server or job failure. One oversized task should not prevent the primary window from loading or navigating elsewhere. Lazy/byte-bounded transcript hydration and externalizing large image/tool payloads would likely prevent this failure mode.
Raw transcripts and logs are not attached publicly because they contain conversation and local-environment metadata. Sanitized excerpts can be provided privately.
algiver commentedon Aug 15, 2026
I am having this same or a very similar issue.
it-yusha commentedon Aug 15, 2026
Possibly related additional observation from a newer build: this may involve the same history-hydration subsystem, although the visible symptom here was a blank task pane rather than the entire window remaining on the logo screen.
Environment:
26.810.50856(build6644)0.148.0-alpha.9On August 15, 2026, I reproduced a long blank task pane when opening a task with little or no visible chat history. This indicates that the selected task's own transcript size is not sufficient to explain the delay.
Sanitized desktop logs showed congestion in the app-wide App Server request queue across multiple conversations:
thread/resumetook up to 103,918 msthread/turns/listtook up to 94,513 msthread/turns/listrequests exceeded 10 secondsqueueWaitMsreached 60,006 mstail_historyandthread_hydrationApp server request expired while queued,Failed to load older thread turns, andFailed to load remaining thread turns after resumeMultiple tasks were being resumed or hydrated in the background through the same queue. A small task could therefore remain blank while waiting behind history requests for other tasks.
The total local history corpus may still increase the background workload, so this complements the oversized-history observation above rather than ruling it out. The immediate bottleneck in this reproduction appears to be shared request-queue congestion and cross-task hydration, rather than only the size of the task currently being opened.
Raw logs are not attached publicly because they contain conversation and local-environment metadata.
it-yusha commentedon Aug 24, 2026
Follow-up to my earlier observation:
Since around August 20, the original logo/loading-screen hang reported in this issue has not recurred at all in my environment. I no longer need to open a New Window or restart the app to recover the primary window. Because the hang itself has stopped occurring, I have also not experienced the associated loss of in-app browser state.
Around the same time, I made the following changes:
Before archiving the old thread, after restarting the desktop app, another central thread took approximately 55 seconds to display its conversation history. After archiving, the same measurement took 27 seconds and 31 seconds across two restarts, for an average of 29 seconds—about 47% faster. The composer was usable immediately in both cases; send latency was not measured.
The successor production thread has remained stable and responsive since the migration.
The ChatGPT desktop app was also updated during this period, so I cannot determine whether the original renderer freeze was resolved by the app update, the reduced history-hydration workload, or a combination of both. The immediate before-and-after measurements suggest that archiving the very large inactive thread materially reduced the shared loading workload, consistent with the queue-congestion diagnostics in my previous comment.
For now, this issue is resolved in my environment. I will leave the issue open and report again if the original primary-window hang recurs.
markfxs commentedon Sep 14, 2026
Additional reproduction on a newer macOS desktop build, with cross-device evidence that the task completed while the primary Mac window remained stale.
Environment
26.908.40834(build8881)26.6.2(build25G83)arm64)Observed sequence
Thinkingstate and displays none of the assistant replies, making the task appear frozen.This indicates that the turn execution and persisted task state completed successfully, while only the Mac renderer or live state subscription failed to catch up.
Sanitized local evidence
During the affected period, the Mac desktop log contained 84 occurrences between
2026-09-14T13:07:37Zand2026-09-14T14:01:12Zof:At
2026-09-14T14:01:03Z, App Server calls for this active task, includingthread/queue/addandthread/queue/list, returned witherrorCode=nullandtargetDestroyed=falsefor both the primary renderer and another web contents instance. A laterchatgpt_pubsub_transport_closedwarning was also logged, although it is not clear whether that event was causal.No raw logs, prompts, task identifiers, account identifiers, recording names, or local filesystem paths are included here because they may contain private data.
Expected behavior
When a turn completes and is persisted, the Mac desktop window should leave the
Thinkingstate and render the completed responses. Switching between iPhone remote access and the Mac desktop app should not leave the primary renderer permanently stale. If the live subscription is lost, the desktop app should reconnect automatically or display an explicit recovery action.This looks closely related to the renderer and task-continuation behavior reported here, with an additional cross-device confirmation that the backend task and stored responses remained healthy. It may also be related to #43151.