Skip to content

Remote Extension Host crash-loops due to GitHub Copilot Chat "navigator is now a global in nodejs" (PendingMigrationError), also breaking unrelated extensions (Jupyter notebooks) #11787

Description

Is there an existing issue for this bug?

  • I have searched the existing open issues and found none that apply.
  • If I find any issue of interest that is related or closed, I will included a link to it in this issue.

Required Troubleshooting Steps

  • I have read and performed the troubleshooting steps
  • I have tried both values of the remote.SSH.useLocalServer setting
  • My issue was not covered in the Tips and Tricks linked from the Troubleshooting Wiki.
  • I will include a complete copy of my Remote - SSH logs by running Remote-SSH: Show Log in the command palette or from View > Output in the menu bar

[Optional] Diagnose with Copilot

I did not ask the @remote-ssh participant for help

In step 2 of the troubleshooting wiki, what was the result of running the generated SSH command verbatim outside of VS Code?

I COULD successfully SSH to the remote machine with the generated SSH command

Remote-SSH Log

Remote-SSH Log

[15:01:31.124] Log Level: 2
[15:01:31.161] VS Code version: 1.132.0
[15:01:31.162] Remote-SSH version: remote-ssh@0.125.2026080721
[15:01:31.163] win32 x64
[15:01:31.271] SSH Resolver called for "ssh-remote+genomdk-ofp-ehr", attempt 1
[15:01:31.296] remote.SSH.useLocalServer = false
[15:01:31.298] remote.SSH.useExecServer = false
[15:01:31.299] remote.SSH.bindHost = {}
[15:01:31.302] remote.SSH.showLoginTerminal = false
[15:01:31.303] remote.SSH.remotePlatform = {"contabo-game-opt-folder":"linux","talktoalba":"linux","HomeSweetMusic":"linux","talktoalba_prod":"linux","109.199.104.168":"linux","talktoalba_webapps":"linux","nginx_config":"linux","HomeSweetMusicSelyp":"linux","contabo-radio-admin":"linux","genomdk":"linux","genomdk-ofp-ehr":"linux","genomdk-LanguagePain":"linux"}
[15:01:31.304] remote.SSH.path = 
[15:01:31.305] remote.SSH.configFile = 
[15:01:31.306] remote.SSH.useFlock = true
[15:01:31.307] remote.SSH.lockfilesInTmp = false
[15:01:31.308] remote.SSH.localServerDownload = auto
[15:01:31.310] remote.SSH.remoteServerListenOnSocket = false
[15:01:31.311] remote.SSH.defaultExtensions = []
[15:01:31.313] remote.SSH.defaultExtensionsIfInstalledLocally = []
[15:01:31.315] remote.SSH.loglevel = 2
[15:01:31.316] remote.SSH.enableDynamicForwarding = true
[15:01:31.318] remote.SSH.enableRemoteCommand = false
[15:01:31.319] remote.SSH.serverPickPortsFromRange = {}
[15:01:31.321] remote.SSH.serverInstallPath = {}
[15:01:31.322] remote.SSH.permitPtyAllocation = false
[15:01:31.324] remote.SSH.preferredLocalPortRange = undefined
[15:01:31.326] remote.SSH.useCurlAndWgetConfigurationFiles = false
[15:01:31.328] remote.SSH.experimental.chat = true
[15:01:31.330] remote.SSH.experimental.enhancedSessionLogs = true
[15:01:31.331] remote.SSH.httpProxy = {"*":""}
[15:01:31.332] remote.SSH.httpsProxy = {"*":""}
[15:01:31.370] SSH Resolver called for host: genomdk-ofp-ehr
[15:01:31.372] Setting up SSH remote "genomdk-ofp-ehr"
[15:01:31.398] Using commit id "df53daabb18cd157bdb08c7f01c34df936cf12f4" and quality "stable" for server
[15:01:31.399] Extensions to install: 
[15:01:31.421] Install and start server if needed
[15:01:31.440] Checking ssh with "C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin\ssh.exe -V"
[15:01:31.448] Got error from ssh: spawn C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin\ssh.exe ENOENT
[15:01:31.450] Checking ssh with "C:\Python312\Scripts\ssh.exe -V"
[15:01:31.454] Got error from ssh: spawn C:\Python312\Scripts\ssh.exe ENOENT
[15:01:31.456] Checking ssh with "C:\Python312\ssh.exe -V"
[15:01:31.458] Got error from ssh: spawn C:\Python312\ssh.exe ENOENT
[15:01:31.460] Checking ssh with "C:\Program Files (x86)\Common Files\Oracle\Java\javapath\ssh.exe -V"
[15:01:31.462] Got error from ssh: spawn C:\Program Files (x86)\Common Files\Oracle\Java\javapath\ssh.exe ENOENT
[15:01:31.464] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin\ssh.exe -V"
[15:01:31.468] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin\ssh.exe ENOENT
[15:01:31.470] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\libnvvp\ssh.exe -V"
[15:01:31.472] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\libnvvp\ssh.exe ENOENT
[15:01:31.474] Checking ssh with "C:\Windows\system32\ssh.exe -V"
[15:01:31.477] Got error from ssh: spawn C:\Windows\system32\ssh.exe ENOENT
[15:01:31.479] Checking ssh with "C:\Windows\ssh.exe -V"
[15:01:31.481] Got error from ssh: spawn C:\Windows\ssh.exe ENOENT
[15:01:31.482] Checking ssh with "C:\Windows\System32\Wbem\ssh.exe -V"
[15:01:31.485] Got error from ssh: spawn C:\Windows\System32\Wbem\ssh.exe ENOENT
[15:01:31.487] Checking ssh with "C:\Windows\System32\WindowsPowerShell\v1.0\ssh.exe -V"
[15:01:31.491] Got error from ssh: spawn C:\Windows\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT
[15:01:31.494] Checking ssh with "C:\Windows\System32\OpenSSH\ssh.exe -V"
[15:01:31.536] > OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2
[15:01:31.545] Running script with connection command: "C:\Windows\System32\OpenSSH\ssh.exe" -T -D 60977 "genomdk-ofp-ehr" bash
[15:01:31.547] Generated SSH command: 'type "C:\Users\GERGOG~1\AppData\Local\Temp\vscode-linux-multi-line-command-genomdk-ofp-ehr-278957251.sh" | "C:\Windows\System32\OpenSSH\ssh.exe" -T -D 60977 "genomdk-ofp-ehr" bash'
[15:01:31.550] Using connect timeout of 17 seconds
[15:01:31.554] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[15:01:32.063] > 
[15:01:32.065] Got some output, clearing connection timeout
[15:01:32.081] > 
[15:01:32.739] > (savpank@login.genome.au.dk) Password: 
[15:01:32.750] Showing password prompt
[15:01:36.571] Got password response
[15:01:36.579] "install" wrote data to terminal: "*************"
[15:01:36.657] > 
[15:01:38.669] > 4cafda47c09d: running
[15:01:38.721] > Acquiring lock on /home/savpank/.vscode-server/bin/df53daabb18cd157bdb08c7f01c34df936cf12f4/vscode-remote-lock.savpank.df53daabb18cd157bdb08c7f01c34df936cf12f4
> Found existing installation at /home/savpank/.vscode-server/bin/df53daabb18cd157bdb08c7f01c34df936cf12f4...
> Checking /home/savpank/.vscode-server/.df53daabb18cd157bdb08c7f01c34df936cf12f4.log and /home/savpank/.vscode-server/.df53daabb18cd157bdb08c7f01c34df936cf12f4.pid for a running server
> Looking for server with pid: 3411849
[15:01:39.130] > Starting VS Code Server... "/home/savpank/.vscode-server/bin/df53daabb18cd157bdb08c7f01c34df936cf12f4/bin/code-server" --start-server --server-data-dir "/home/savpank/.vscode-server" --host=127.0.0.1 --accept-server-license-terms --enable-remote-auto-shutdown  --port=0 --telemetry-level all   &> "/home/savpank/.vscode-server/.df53daabb18cd157bdb08c7f01c34df936cf12f4.log" < /dev/null
> The VS Code Server log file is /home/savpank/.vscode-server/.df53daabb18cd157bdb08c7f01c34df936cf12f4.log
[15:01:39.145] > Removing old logfile at /home/savpank/.vscode-server/.df53daabb18cd157bdb08c7f01c34df936cf12f4.log
> Spawned remote server: 3838566
[15:01:39.212] > Waiting for server log...
> Waiting for server log...
[15:01:39.276] > Waiting for server log...
[15:01:39.314] > Waiting for server log...
> Waiting for server log...
[15:01:39.363] >  
> *
> * Visual Studio Code Server
> *
> * By using the software, you agree to
> * the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
> * the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
> *
>  
[15:01:39.381] > 4cafda47c09d: start
> SSH_AUTH_SOCK====
> DISPLAY====
> webUiAccessToken====
> listeningOn==37829==
> osReleaseId==almalinux==
> arch==x86_64==

Expected Behavior

After connecting via Remote-SSH and (re)installing extensions, the Remote Extension Host should start once and stay stable, allowing extensions like Jupyter to register the notebook editor correctly.

Actual Behavior

The Remote Extension Host repeatedly crashes and restarts (roughly every 7 seconds). Each restart fails shortly after activating the built-in GitHub.copilot-chat extension, throwing:
PendingMigrationError: navigator is now a global in nodejs, please see https://aka.ms/vscode-extensions/navigator for additional info on this error.
at .../extensions/copilot/dist/extension.js:...
Because the Extension Host never stabilizes, dependent functionality never finishes registering either — e.g. opening a .ipynb file fails with:
"Cannot open resource with notebook editor type 'jupyter-notebook', please check if you have the right extension installed and enabled."
Disabling the built-in GitHub Copilot Chat extension (Extensions view > Disable) immediately stops the crash loop and notebooks open normally again.
Note: the built-in GitHub.copilot-chat extension cannot be removed via code-server --uninstall-extension GitHub.copilot-chat — it reports "is a Built-in extension and cannot be uninstalled". Disabling via the UI was the only workaround found.

Steps To Reproduce

  1. Connect via Remote-SSH to a Linux host where ~/.vscode-server had been fully removed and reinstalled (fresh VS Code Server install + marketplace extensions reinstalled via code-server --install-extension ...).
  2. Open/reload the window.
  3. Observe the notification: "Remote Extension host terminated unexpectedly 3 times within the last 5 minutes."
  4. Inspect ~/.vscode-server/data/logs//exthost*/remoteexthost.log — a new Extension Host process starts every ~7s, each crashing right after activating GitHub.copilot-chat (activationEvent 'onChatSession:copilotcli') with the "navigator is now a global in nodejs" PendingMigrationError.
  5. Try to open a .ipynb file — fails with "Cannot open resource with notebook editor type 'jupyter-notebook'".
  6. Disable GitHub Copilot Chat (built-in) via Extensions view — Extension Host stabilizes, notebook opens normally.

Anything else?

  • Remote-SSH extension version: 0.125.2026080721

  • VS Code (client) version: 1.132.0

  • VS Code Server commit: df53daabb18cd157bdb08c7f01c34df936cf12f4

  • Server Node.js version: v24.18.0

  • Remote OS: AlmaLinux, x86_64

  • Remote-SSH extension version: 0.125.2026080721

  • VS Code (client) version: 1.132.0

  • VS Code Server commit: df53daabb18cd157bdb08c7f01c34df936cf12f4

  • Server Node.js version: v24.18.0

  • Remote OS: AlmaLinux, x86_64
    Related (closed, not planned, locked for comments):

  • Copilot crashes Extension Host (remote) when SSH into a remote machine due to PendingMigrationError: navigator is now a global in nodejs vscode#278928

  • Remote SSH 0.122.0 incompatible with VS Code 1.116: PendingMigrationError causes remote extension host to fail, breaking Copilot Chat on remote #11600
    New in this report: the crash-loop takes down unrelated extension activation too — the vscode.ipynb notebook serializer never finished registering while the Extension Host was crash-looping, so opening any .ipynb file failed with "Cannot open resource with notebook editor type 'jupyter-notebook'", even with the Jupyter extension correctly installed. The crash loop also repeatedly recreates/invalidates the workspaceStorage lock file (~/.vscode-server/data/User/workspaceStorage//vscode.lock), which looked like an unrelated NFS-locking bug before being traced back to this.
    Workaround confirmed: disabling GitHub Copilot Chat via the Extensions view. It's built-in, so code-server --uninstall-extension GitHub.copilot-chat fails with "is a Built-in extension and cannot be uninstalled" — must be disabled via the UI. Extension Host stabilized immediately afterward.

Metadata

Metadata

Assignees

Labels

sshIssue in vscode-remote SSH

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions