Skip to content

openai.chatgpt extension breaks on code-server: chatSessionsProvider proposed API gap + Node 22 navigator migration #30398

Description

@erickdong

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:

  1. vscode.chat.registerChatSessionItemProvider proposed API is missing on code-server based on VS Code < 1.103
  2. PendingMigrationError: navigator is now a global in nodejs on 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

  1. Codex sidebar opens
  2. User types a message, clicks Send
  3. No response (or thinking spinner forever)
  4. Eventually the entire input box becomes unresponsive
  5. 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-changed warnings
  • 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

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    app-serverIssues involving app server protocol or interfacesbugSomething isn't workingextensionIssues related to the VS Code extension

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions