VS Code Codex extension blank sidebar in Remote SSH on 26.519.32039; rollback fixes it

Open 💬 9 comments Opened May 26, 2026 by JiaxinLi-lipluszn
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

After updating the VS Code Codex extension (openai.chatgpt) to 26.519.32039, the Codex sidebar shows a blank panel when used in a VS Code Remote SSH window. Rolling back one extension version fixes the issue.

The desired workflow is for Codex to run in the remote SSH extension host so it can execute in the server-side repository, shell, dependency environment, and filesystem. Forcing the extension to run locally with remote.extensionKind: { "openai.chatgpt": ["ui"] } is not an acceptable workaround for this use case.

Environment

  • VS Code: 1.121.0
  • VS Code commit: f6cfa2ea2403534de03f069bdf160d06451ed282
  • Local OS: macOS arm64
  • Remote: Linux x64 via VS Code Remote SSH
  • Extension id: openai.chatgpt
  • Broken extension version observed: 26.519.32039
  • Workaround that fixes it: roll back one extension version

Steps to reproduce

  1. Open a project using VS Code Remote SSH.
  2. Install or update the Codex VS Code extension to 26.519.32039 on the remote SSH side.
  3. Open the Codex sidebar.
  4. Observe that the sidebar is blank.

Expected behavior

The Codex sidebar should load normally, and Codex should run in the remote SSH extension host so that commands and file operations happen in the server-side repo/environment.

Actual behavior

The Codex sidebar is blank in the Remote SSH window.

The VS Code renderer / extension host logs include errors like:

PendingMigrationError: navigator is now a global in nodejs
navigator is now a global in nodejs, please see https://aka.ms/vscode-extensions/navigator

The stack points into the remote extension installation, e.g.:

~/.vscode-server/extensions/openai.chatgpt-26.519.32039-linux-x64/out/extension.js

Workarounds tried

  • remote.extensionKind: { "openai.chatgpt": ["ui"] } makes the UI usable, but this moves Codex out of the remote extension host and is not acceptable for server-side execution.
  • extensions.supportNodeGlobalNavigator: false was tried.
  • Rolling back one extension version fixed the Remote SSH sidebar issue.

Impact

This blocks using Codex in the intended Remote SSH workflow, where execution must happen on the server-side repository/environment rather than locally.

View original on GitHub ↗

9 Comments

github-actions[bot] contributor · 1 month ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #24564

Powered by Codex Action

xingwangyong · 1 month ago

Same issue here. Thanks for the workaround!

Dmitry-Borodin · 1 month ago

Just want to note this is not only remote, it's for local projects in devcontainer as well.

HLrwth · 1 month ago

I’m seeing what looks like the same failure on a Remote-SSH VS Code Server setup.

Environment:

  • Extension: openai.chatgpt-26.602.40724-linux-x64
  • Bundled CLI: codex-cli 0.137.0-alpha.4
  • VS Code Server log reports VS Code 1.123.0, commit 6a44c352bd24569c417e530095901b649960f9f8
  • Remote OS: AlmaLinux 9.7, Linux x86_64, Remote-SSH / ~/.vscode-server
  • Bundled binary runs successfully from a terminal: ~/.vscode-server/extensions/openai.chatgpt-26.602.40724-linux-x64/bin/linux-x86_64/codex

Symptoms:

  • Codex sidebar/view is blank after reload.
  • codex doctor --summary is mostly healthy: config loads, auth configured, websocket reachable, app-server not running when idle; one warning about search command (rg) not being on PATH.
  • Initial extension-host log had the same error noted here: PendingMigrationError: navigator is now a global in nodejs, from out/extension.js.
  • I tested a local one-line workaround by adding a module-local var navigator = void 0; shim at the top of the installed out/extension.js. After that, a fresh remote extension-host log no longer showed the navigator activation error, and openai.chatgpt/Codex.log showed the app-server being spawned and initialized.
  • Even after that, the UI remained blank.
  • As an additional diagnostic, I temporarily inserted a fixed-position red “Codex webview HTML loaded” marker directly into the installed webview/index.html. After reloading VS Code, that marker was not visible either. That suggests the remaining failure is either the webview document not being rendered/loaded, or VS Code serving a stale/blocked webview document, not just a React/app JS crash after HTML load.

Relevant post-shim Codex.log excerpt:

[info] Activating Codex extension
[info] [CodexMcpConnection] Spawning codex app-server
[info] [IpcRouter] I am the router
[error] codex_app_server: Codex could not find bubblewrap on PATH. Install bubblewrap on your system.
[info] [CodexMcpConnection] Initialize received id=1

Workarounds tried:

  • Reload window
  • Disable Codex plugins feature to avoid startup plugin/GitHub sync path
  • Local navigator shim in the installed extension bundle, which removed the activation crash but did not restore the UI
  • Direct static marker in webview/index.html, still not visible after reload

Impact: this blocks using Codex from VS Code on Remote-SSH/HPC even though the bundled CLI itself works from the remote terminal.

jackblackbla · 1 month ago

I can reproduce this on a newer build as well.

Environment:

  • VS Code: 1.124.2
  • Local OS: macOS / Darwin arm64
  • Remote: Linux x86_64 over VS Code Remote-SSH
  • Remote-SSH extension: 0.124.0
  • Codex extension: openai.chatgpt 26.609.30741
  • Codex CLI: codex-cli 0.140.0-alpha.2

Behavior:

  • Remote-SSH connection works.
  • Files open normally in the remote workspace.
  • codex --version works in the remote terminal.
  • The Codex app-server starts.
  • The Codex sidebar/panel opens as a blank view and never renders usable UI.

Relevant log:

PendingMigrationError: navigator is now a global in nodejs, please see https://aka.ms/vscode-extensions/navigator for additional info on this error.
    at get (.../server/out/vs/workbench/api/node/extensionHostProcess.js:837:7243)
    at ~/.vscode-server/extensions/openai.chatgpt-26.609.30741-linux-x64/out/extension.js:1:10389

The stack points to this bundled check inside the extension:

typeof navigator < "u" && navigator?.userAgent?.includes("Cloudflare")

As a local test, patching that check so it does not access navigator removes the extension-host error, which suggests the extension is touching VS Code's migration-guarded global navigator in the extension host.

jackblackbla · 29 days ago

Update: this still reproduces after the VS Code extension auto-updated to openai.chatgpt 26.616.51431.

Environment:

  • VS Code 1.125.1
  • Local: macOS arm64
  • Remote: Linux x86_64 over Remote-SSH
  • Remote-SSH extension: 0.124.0
  • openai.chatgpt: 26.616.51431
  • Remote extension host is launched with --supportGlobalNavigator

Observed:

  • Opening the Codex sidebar can make the VS Code renderer spike near 100% CPU and the window becomes unresponsive / Codex appears blank.
  • The remote Codex app-server does start, but the UI can hang when opening the Codex view.
  • I also observed duplicate Remote-SSH extension host / Codex app-server processes and a stale vscode.lock after the hang.

The new extension bundle appears to contain the same problematic pattern again:

if (typeof navigator < "u" && navigator?.userAgent?.includes("Cloudflare")) return false;

Workaround that restored the panel locally:

  • Patch that Cloudflare navigator.userAgent check to a constant false branch in both the local Darwin arm64 extension bundle and the remote Linux x64 extension bundle.
  • Fully quit VS Code.
  • Kill stale Remote-SSH extension host / file watcher / Codex app-server processes.
  • Remove stale vscode.lock files under remote workspace storage.
  • Reopen the Remote-SSH window.

After that, the latest remote Codex log shows successful startup:

Activating Codex extension
[CodexMcpConnection] Spawning codex app-server
[CodexMcpConnection] Initialize received id=1
[startup][renderer] app routes mounted
[IpcRouter] I am the router

No PendingMigrationError, navigator is now a global in nodejs, or vscode.lock error appeared in the latest log after the workaround.

This looks like the same Remote-SSH/global navigator compatibility issue resurfacing in 26.616.51431 after the extension update overwrote the previous local workaround.

zzz5y · 28 days ago

it really helps me.THX

Crustacean · 6 days ago

VS Code codex extension dialogue box not showing Ubuntu 26. Who knows which version is working?

PeiranLi0930 · 3 days ago

Solution

I reproduced this with VS Code Remote-SSH and openai.chatgpt 26.707.91948.

The failure is caused by the bundled Zod v4 environment check accessing navigator inside the Node.js remote extension host:

typeof navigator !== "undefined"

This triggers VS Code’s PendingMigrationError and can leave the Codex webview blank or unresponsive.

Immediate workaround

Create ~/.vscode-server/data/Machine/settings.json on the remote host:

~~~json
{
"extensions.supportNodeGlobalNavigator": true
}
~~~

Then run Developer: Reload Window. Setting this only in the local VS Code user settings did not fix the remote extension host.

Required source fix

The extension/dependency should detect Node before accessing navigator:

~~~ts
const isNode =
typeof process === "object" && process?.versions?.node;

if (
!isNode &&
typeof navigator !== "undefined" &&
navigator?.userAgent?.includes("Cloudflare")
) {
return false;
}
~~~

After applying the remote setting, the unmodified official extension loaded normally and the Codex webview mounted successfully.