Repository navigation
[extension][Windows][Cursor/Antigravity] Long existing threads open as blank panel while short threads load normally #18931
Description
Activity
- addedbugSomething isn't workingSomething isn't workingextensionIssues related to the VS Code extensionIssues related to the VS Code extensionwindows-osIssues related to Codex on Windows systemsIssues related to Codex on Windows systemssessionIssues involving session (thread) management, resuming, forking, naming, archivingIssues involving session (thread) management, resuming, forking, naming, archiving
on Apr 22, 2026 github-actions commented
on Apr 22, 2026 on Apr 22, 2026 – with GitHub ActionsContributorMore actionsPotential duplicates detected. Please review them and close your issue if it is a duplicate.
- We have to open Codex App to load chats in IDE extension #18709
- bug: VS Code extension enters persistent CPU churn by repeatedly calling unsupported host endpoints (
local-environments,open-in-targets) on fresh Debian #17357 - codex extension in cursor can not load correctly #17290
- extension gets stuck in loading state #17104
Powered by Codex Action
Hi @huygiatrng, I’m seeing a very similar issue in Cursor with the Codex IDE extension.
In my case, short existing conversations usually load normally, but longer existing conversations intermittently open as a blank panel or stay stuck loading. My environment is WSL2/Linux + Cursor, so it is not exactly the same as your Windows setup, but the failure mode looks very close.
I also see similar logs around missing broadcast handlers, plus a few additional signals:
Codex chat session item provider not registered errorMessage="nt.chat.registerChatSessionItemProvider is not a function" [IpcClient] Received broadcast but no handler is configured method=query-cache-invalidate [IpcClient] Received broadcast but no handler is configured method=thread-stream-state-changed WARN codex_app_server::transport: dropping overload response for connection ConnectionId(0): outbound queue is fullI filed a separate issue here with logs and an uploaded feedback thread:
May I ask why you closed this issue as not planned? Did you find a workaround, or did the problem stop reproducing after an update?
I can reproduce a very similar issue on Windows with Antigravity and a newer Codex extension build.
Environment:
- OS: Windows 11 Home x64
- IDE: Antigravity
- Antigravity version: 1.23.2 (Apr 16, 2026)
- Codex extension: openai.chatgpt-26.422.62136-win32-x64
- Codex CLI: codex-cli 0.126.0-alpha.8
Observed:
- Short local sessions usually open normally.
- Longer existing local sessions intermittently open as a blank panel.
- Developer: Reload Window sometimes restores the session UI; sometimes a full Antigravity restart is needed.
- The local session JSONL files I checked parse successfully, so this does not look like simple session-file corruption.
Sanitized local diagnostics:
- state_5.sqlite integrity_check: ok
- threads in state DB: 23
- blank title count: 0
- blank first_user_message count: 0
- largest checked session JSONL files parse with bad_json=0
- repeated log signals:
- thread-stream-state-changed broadcasts with no configured handler
- client-status-changed/query-cache-invalidate broadcasts with no configured handler
- Codex chat session item provider not registered
- chatSessionsProvider/languageModelProxy proposed API errors in Antigravity renderer logs
- codex_app_server transport warnings: outbound queue is full
Hypothesis:
The failure seems to happen during long local thread replay or hydration in the extension/webview bridge. In Antigravity, proposed API availability and agent/session services appear to be inconsistent, and long replay amplifies the timing/backpressure issue.Potential fix direction:
- Gracefully degrade when chatSessionsProvider/languageModelProxy are unavailable in VS Code forks.
- Avoid throwing or blocking UI hydration when replay-only broadcasts arrive before webview handlers are registered.
- Buffer, coalesce, or drop nonessential replay notifications until the bridge is ready.
- Add backpressure handling for long local thread replay.
- Normalize oversized title/first_user_message metadata before hydrating extension UI state.
- Add regression coverage for opening long local threads in Windows extension hosts.
I can provide additional sanitized diagnostics or test a maintainer-suggested build if useful.
What version of the IDE extension are you using?
openai.chatgpt-26.5417.40842-win32-x64openai.chatgpt-26.417.40842-win32-x64What subscription do you have?
Unknown
Which IDE are you using?
What platform is your computer?
Microsoft Windows NT x64What issue are you seeing?
The Codex IDE extension can list recent chat sessions correctly, but opening a longer existing local thread often leaves the panel blank.
Observed behavior:
Full accessstays greyed out / stuck on loading,Important isolation detail:
.codexthread file.In my setup this reproduces in both Cursor and Antigravity, but not in the Codex desktop app.
What steps can reproduce the bug?
Full accessstays stuck loading.What is the expected behavior?
Long existing local threads should open in the IDE extension as reliably as they do in the Codex desktop app.
If a host feature is unsupported or a webview bridge is not ready yet, the extension should degrade gracefully instead of leaving the thread UI blank.
Additional information
This appears related to, but not identical to:
thread-stream-state-changedbroadcasts with no handler #13343I inspected local logs and found two separate signals.
1. Proposed API / host compatibility problems in VS Code forks
Antigravity renderer logs report that the extension cannot use:
chatSessionsProviderlanguageModelProxyand explicitly suggest launching with:
Cursor logs are slightly different: they report that those proposals do not exist in the host.
So at least part of the failure is host compatibility, especially in VS Code forks.
2. Extension-side broadcast delivery appears brittle during thread replay
When opening an affected long thread, the extension logs fall into a bad IPC / webview state during thread replay.
Locally I observed failures in the
sendBroadcast(...)path for events in this family:thread-stream-state-changedthread-read-state-changedclient-status-changedthread-archivedthread-unarchivedthread-queued-followups-changedquery-cache-invalidateIn Cursor, once replay starts, the bridge can enter a
not-connectedfailure mode and the thread UI stays blank.Local workaround that restored usability
I was able to restore behavior locally with a runtime-only patch:
sendBroadcast(...)throws because the bridge is not connected, catch and log a warning instead of tearing down the UI state.Conceptually:
That workaround is obviously not a real upstream fix, but it strongly suggests the extension currently assumes the webview bridge is present and connected during long-thread replay, and that assumption is false in some hosts or replay timings.
Proposed fix direction