openai.chatgpt extension breaks on code-server: chatSessionsProvider proposed API gap + Node 22 navigator migration
openai.chatgpt extension breaks on code-server: chatSessionsProvider proposed API gap + Node 22 navigator migration
Summary
The openai.chatgpt (Codex IDE) extension silently fails on code-server (Coder's browser-based VS Code distribution) due to two compounding compat gaps:
vscode.chat.registerChatSessionItemProviderproposed API is missing on code-server based on VS Code < 1.103PendingMigrationError: navigator is now a global in nodejson code-server based on VS Code ≥ 1.108 (Node 22+)
Both issues produce the same user-visible symptom: Codex sidebar loads but Send button does nothing, then composer freezes entirely.
We have empirically located the exact extension version boundary below, which other public issues have not.
Environment
- code-server 4.100.3 (VS Code 1.100.3) — original failure environment
- code-server 4.118.0 (VS Code 1.118.0, Node v22.22.1) — Plan B verification
- Linux x86_64
- Codex extension installed via VSIX
Symptoms
- Codex sidebar opens
- User types a message, clicks Send
- No response (or thinking spinner forever)
- Eventually the entire input box becomes unresponsive
- Only workaround end-users have: refresh the browser tab
Root cause 1: chat.registerChatSessionItemProvider not available
On code-server 4.100 (VS Code 1.100), the extension throws:
[error] TypeError: ut.chat.registerChatSessionItemProvider is not a function
at out/extension.js:628 (function Jrt)
The call is wrapped in try/catch and logged as info, so activation appears to succeed, but:
- The chat session item provider is never registered
- All downstream broadcast handlers (
thread-stream-state-changed,thread-read-state-changed,query-cache-invalidate,client-status-changed,thread-queued-followups-changed) end up unregistered - The IpcClient then logs hundreds of
Received broadcast but no handler is configured method=thread-stream-state-changedwarnings - When broadcast rate exceeds ~5/sec for a sustained burst (typically triggered by new conversation creation), the webview JS main thread saturates → composer freezes
Root cause 2: Node 22+ navigator global migration
On code-server 4.118 (VS Code 1.118 / Node 22.22.1), the extension throws:
[error] PendingMigrationError: navigator is now a global in nodejs,
please see https://aka.ms/vscode-extensions/navigator for additional info
at out/extension.js (during Zod schema initialization)
This appears unmigrated even in your latest stable release 26.5623.42026.
This matches the previously-reported issue #10515 (closed as duplicate of #10421 but not actually fixed).
Exact extension version boundary (new data)
We downloaded and inspected package.json from VSIXs across the version range:
| Version | Date | enabledApiProposals includes chatSessionsProvider? |
|---|---|---|
| 0.3.3 | 2025-08-27 | ❌ NO |
| 0.5.20 | 2025-10 | ❌ NO |
| 0.5.21 | 2025-10 | ❌ NO |
| 0.5.22 | 2025-10-22 | ❌ NO ← last safe version |
| 0.5.23 | 2025-10-23 | ✅ YES (introduced) |
| 0.5.24+ | | ✅ YES |
| 26.5xxx (stable) | 2026+ | ✅ YES |
| 26.6xx (pre-release) | 2026 | ✅ YES |
0.5.22 is the last extension version that does NOT call chat.registerChatSessionItemProvider, and is therefore the last version that activates cleanly on code-server / VS Code 1.100.
Reproducer
On a fresh code-server 4.100.3:
# Install Codex 26.5623.42026 (current stable)
code-server --install-extension openai.chatgpt
# Open Codex sidebar in browser
# Create a new conversation, send any message
# Observe: composer freezes, then becomes unresponsive
Then:
# Workaround: downgrade to 0.5.22
code-server --uninstall-extension openai.chatgpt
curl -L -o codex.vsix \
'https://openai.gallery.vsassets.io/_apis/public/gallery/publisher/openai/extension/chatgpt/0.5.22/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage'
code-server --install-extension codex.vsix
Codex works normally after this downgrade.
Impact
We run this in production for end users (browser-based coding sandboxes powered by code-server + Codex via Skynet LLM Gateway). The current state forces us to pin to 0.5.22 indefinitely, losing 8 months of Codex improvements (Apps SDK, plan summary view, etc.).
Related issues
- #10421 — closed without fix (same root cause class)
- #10515 — closed as dup of #10421 (also Node navigator issue)
- #22832 — closed as "not planned" (singleton app-server architecture)
- #24601 — same pattern, different version
- #26951 — open, no response
- #27597 — open, no response
- #4323 — no public changelog (still open, hence we have to reverse-engineer)
Requested action (specific, low-cost)
Either or both:
(a) In a future release, make chat.registerChatSessionItemProvider call conditionally skip when the API is unavailable, and ensure all broadcast handlers it would have wired are also no-op'd. The try/catch already exists; just extending the fallback path would unblock all code-server users without affecting desktop VS Code users.
(b) Document on https://developers.openai.com/codex/ide that code-server is not a supported runtime, so future users know upfront.
(b) alone is a documentation change that costs near zero and saves countless engineer-days from people doing what we just did.
Happy to provide additional logs, package.json diffs, or any other data that helps.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗