codex - 💡(How to fix) Fix [extension][Windows][Cursor/Antigravity] Long existing threads open as blank panel while short threads load normally [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openai/codex#18931Fetched 2026-04-22 07:50:41
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Timeline (top)
labeled ×4closed ×1commented ×1

Root Cause

  • if the target bridge/webview is missing, return instead of throwing;
  • if sendBroadcast(...) throws because the bridge is not connected, catch and log a warning instead of tearing down the UI state.

Fix Action

Fix / Workaround

Local workaround that restored usability

I was able to restore behavior locally with a runtime-only patch:

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.

Code Example

--enable-proposed-api openai.chatgpt

---

--enable-proposed-api openai.chatgpt

---

if (!bridge) return;
try {
  await bridge.sendBroadcast(method, payload);
} catch (err) {
  logger.warning("Dropped broadcast", { method, err });
}
RAW_BUFFERClick to expand / collapse

What version of the IDE extension are you using?

  • Cursor: openai.chatgpt-26.5417.40842-win32-x64
  • Antigravity: openai.chatgpt-26.417.40842-win32-x64

What subscription do you have?

Unknown

Which IDE are you using?

  • Cursor
  • Antigravity (VS Code fork)

What platform is your computer?

Microsoft Windows NT x64

What 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:

  • The recent session list loads normally.
  • Short sessions with only a few turns open quickly.
  • Longer sessions reproduce a failure mode where:
    • the chat panel is empty,
    • Full access stays greyed out / stuck on loading,
    • the thread never becomes usable in the extension.

Important isolation detail:

  • The exact same thread opens quickly in the Codex desktop app on the same machine.
  • So the stored local session itself does not appear to be corrupt.
  • This looks extension-side or extension-host-side, not a bad .codex thread file.

In my setup this reproduces in both Cursor and Antigravity, but not in the Codex desktop app.

What steps can reproduce the bug?

  1. Install the Codex IDE extension in Cursor or Antigravity on Windows.
  2. Open the Codex extension sidebar/panel.
  3. Wait for recent local sessions to load.
  4. Open a short session with only a few turns.
  5. Observe that it loads normally.
  6. Open a much longer existing local session.
  7. Observe that the panel becomes blank and Full access stays stuck loading.
  8. Open the same thread in the Codex desktop app.
  9. Observe that the desktop app renders it quickly.

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:

  • #13343
  • #14917
  • #15393
  • #15368

I 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:

  • chatSessionsProvider
  • languageModelProxy

and explicitly suggest launching with:

--enable-proposed-api openai.chatgpt

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-changed
  • thread-read-state-changed
  • client-status-changed
  • thread-archived
  • thread-unarchived
  • thread-queued-followups-changed
  • query-cache-invalidate

In Cursor, once replay starts, the bridge can enter a not-connected failure mode and the thread UI stays blank.

Local workaround that restored usability

I was able to restore behavior locally with a runtime-only patch:

  1. Launch the editor with:
--enable-proposed-api openai.chatgpt
  1. In the installed extension bundle, change broadcast sends to fail soft:
  • if the target bridge/webview is missing, return instead of throwing;
  • if sendBroadcast(...) throws because the bridge is not connected, catch and log a warning instead of tearing down the UI state.

Conceptually:

if (!bridge) return;
try {
  await bridge.sendBroadcast(method, payload);
} catch (err) {
  logger.warning("Dropped broadcast", { method, err });
}

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

  • Handle unsupported proposed APIs gracefully in VS Code forks.
  • Do not throw from thread replay / broadcast paths when the webview bridge is missing or disconnected.
  • Consider buffering or skipping replay-only notifications until the webview has actually registered its handlers.
  • Add regression coverage for opening a long existing local thread in:
    • VS Code
    • Cursor / VS Code forks if supported

extent analysis

TL;DR

The issue can be mitigated by launching the editor with the --enable-proposed-api openai.chatgpt flag and modifying the extension to handle broadcast sends more robustly, particularly when the webview bridge is missing or disconnected.

Guidance

  • Launch the editor with the --enable-proposed-api openai.chatgpt flag to enable proposed APIs, which may resolve host compatibility issues.
  • Modify the extension's broadcast send logic to fail softly when the target bridge/webview is missing, by returning instead of throwing, and catch any errors that occur during sendBroadcast calls to prevent UI state teardown.
  • Consider implementing a mechanism to buffer or skip replay-only notifications until the webview has registered its handlers, to prevent issues during long-thread replay.
  • Add regression tests for opening long existing local threads in various environments, including VS Code and its forks.

Example

if (!bridge) return;
try {
  await bridge.sendBroadcast(method, payload);
} catch (err) {
  logger.warning("Dropped broadcast", { method, err });
}

This code snippet demonstrates how to modify the broadcast send logic to catch and log errors instead of throwing, which can help prevent UI issues during long-thread replay.

Notes

The proposed fix direction involves handling unsupported proposed APIs gracefully in VS Code forks and improving the extension's robustness during thread replay. However, the exact implementation details may vary depending on the specific requirements and constraints of the extension and its environment.

Recommendation

Apply the workaround by launching the editor with the --enable-proposed-api openai.chatgpt flag and modifying the extension's broadcast send logic, as this can help mitigate the issue and provide a more robust user experience.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING