microsoft / microsoft/vscode-remote-release

When connecting from a Linux client to a Windows SSH host, Remote-SSH fails in the exec-server bootstrap path if the VS Code Server still needs to be downloaded on the remote.

Open
#11,657 2 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ssh
Dominant language
Dockerfile
Stars
4.2k
Forks
469
Avg merge
1d 1h
Merged PRs (30d)
1

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 asked @remote-ssh and it helped, but I still want to report this bug

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

I did not try step 2 of the troubleshooting steps

Remote-SSH Log
Remote-SSH Log

[19:15:24.074] Log Level: 2
[19:15:24.108] SSH Resolver called for "ssh-remote+{remoteIp}", attempt 1
[19:15:24.116] remote.SSH.useLocalServer = true
[19:15:24.116] remote.SSH.useExecServer = true
[19:15:24.117] remote.SSH.bindHost = {}
[19:15:24.117] remote.SSH.path = 
[19:15:24.117] remote.SSH.configFile = 
[19:15:24.117] remote.SSH.useFlock = true
[19:15:24.118] remote.SSH.lockfilesInTmp = false
[19:15:24.118] remote.SSH.localServerDownload = auto
[19:15:24.118] remote.SSH.remoteServerListenOnSocket = false
[19:15:24.119] remote.SSH.defaultExtensions = []
[19:15:24.119] remote.SSH.defaultExtensionsIfInstalledLocally = []
[19:15:24.119] remote.SSH.loglevel = 2
[19:15:24.119] remote.SSH.enableDynamicForwarding = true
[19:15:24.120] remote.SSH.enableRemoteCommand = false
[19:15:24.121] remote.SSH.serverPickPortsFromRange = {}
[19:15:24.122] remote.SSH.serverInstallPath = {}
[19:15:24.122] remote.SSH.permitPtyAllocation = false
[19:15:24.122] remote.SSH.preferredLocalPortRange = undefined
[19:15:24.123] remote.SSH.useCurlAndWgetConfigurationFiles = false
[19:15:24.123] remote.SSH.experimental.chat = true
[19:15:24.123] remote.SSH.experimental.enhancedSessionLogs = true
[19:15:24.124] remote.SSH.httpProxy = {"*":""}
[19:15:24.124] remote.SSH.httpsProxy = {"*":""}
[19:15:24.138] VS Code version: 1.121.0
[19:15:24.139] Remote-SSH version: remote-ssh@0.123.0
[19:15:24.139] linux x64
[19:15:24.144] SSH Resolver called for host: {remoteIp}
[19:15:24.144] Setting up SSH remote "{remoteIp}"
[19:15:24.153] Acquiring local install lock: /tmp/vscode-remote-ssh-76caa2d9-install.lock
[19:15:24.158] Looking for existing server data file at /home/{username}/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-76caa2d9-f6cfa2ea2403534de03f069bdf160d06451ed282-0.123.0-es/data.json
[19:15:24.161] No existing data file
[19:15:24.163] Using commit id "f6cfa2ea2403534de03f069bdf160d06451ed282" and quality "stable" for server
[19:15:24.164] Extensions to install: 
[19:15:24.176] Install and start server if needed
[19:15:24.184] PATH: /home/{username}/.local/bin:/home/{username}/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
[19:15:24.184] Checking ssh with "ssh -V"
[19:15:24.194] > OpenSSH_9.2p1 Debian-2+deb12u7, OpenSSL 3.0.19 27 Jan 2026

[19:15:24.202] askpass server listening on /run/user/1000/vscode-ssh-askpass-6ddf603ce1538bc049b92bfe0e5b98034398f44e.sock
[19:15:24.202] Spawning local server with {"serverId":1,"ipcHandlePath":"/run/user/1000/vscode-ssh-askpass-fb58a5781309fc63885362e78df04f9c3622ce49.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","42703","-o","ConnectTimeout=30","{remoteIp}"],"serverDataFolderName":".vscode-server","dataFilePath":"/home/{username}/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-76caa2d9-f6cfa2ea2403534de03f069bdf160d06451ed282-0.123.0-es/data.json"}
[19:15:24.202] Local server env: {"SSH_AUTH_SOCK":"/tmp/ssh-sJYf55CnZXwK/agent.2969","SHELL":"/usr/bin/zsh","DISPLAY":":1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/usr/share/code/code","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"","VSCODE_SSH_ASKPASS_MAIN":"/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/run/user/1000/vscode-ssh-askpass-6ddf603ce1538bc049b92bfe0e5b98034398f44e.sock"}
[19:15:24.207] Spawned 170699
[19:15:24.208] Using connect timeout of 32 seconds
[19:15:24.333] > local-server-1> Running ssh connection command: ssh -v -T -D 42703 -o ConnectTimeout=30 {remoteIp}
[19:15:24.339] > local-server-1> Spawned ssh, pid=170707
[19:15:24.344] stderr> OpenSSH_9.2p1 Debian-2+deb12u7, OpenSSL 3.0.19 27 Jan 2026
[19:15:24.413] stderr> debug1: Server host key: ssh-ed25519 SHA256:O1hLEcI2c+b+5B7xr6RGG3UWCraIOTc722IbbzyRIs0
[19:15:24.534] stderr> Authenticated to {remoteIp} ([{remoteIp}]:22) using "publickey".
[19:15:24.652] > Microsoft Windows [Version 10.0.26200.8457]
> (c) Microsoft Corporation. All rights reserved.
> 
> {remote_username}@{remote_hostname} C:\Users\{remote_username}>echo 'ready: d6c78889840f'
> 'ready: d6c78889840f'
> 
> {remote_username}@{remote_hostname} C:\Users\{remote_username}>
[19:15:24.654] > uname -rsv
[19:15:24.656] Platform: windows
[19:15:24.656] Remote command length: 6676/8192 characters
[19:15:24.657] > 
> {remote_username}@{remote_hostname} C:\Users\{remote_username}>
[19:15:24.659] > powershell -NoProfile
[19:15:24.746] > Windows PowerShell
> Copyright (C) Microsoft Corporation. All rights reserved.
> 
> Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows
[19:15:24.904] > PS C:\Users\{remote_username}> 
[19:15:24.942] > powershell -ExecutionPolicy Unrestricted -NoLogo -NoProfile -NonInteractive -Command "`$remoteSSHConfigurationScript=[Convert]::ToBase64String([Te
[19:15:24.942] > xt.Encoding]::Unicode.GetBytes([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('CiR1dWlkPSJkNmM3ODg4OTg0MGYiCiIke3V1aWR9OiBydW5uaW5nIgoiZDZjNzg4ODk4NDBmOiBwYXVzZUxvZyIKJFByb2dyZXNzUHJlZmVyZW5jZT0nU2lsZW50bHlDb250aW51ZScKJHJfPSdmNmNmYTJlYTI0MDM1MzRkZTAzZjA2OWJkZjE2MGQwNjQ1MWVkMjgyJwokcD0kZW52OlBST0NFU1NPUl9BUkNISVRFQ1RVUkUKJGFyY2g9JycKaWYgKCRwIC1lcSAnQU1ENjQnIC1vciAkcCAtZXEgJ0lBNjQnKSB7CiRhcmNoPSd4NjQnCn0gZWxzZWlmICgkcCAtZXEgJ0FSTTY0JykgewokYXJjaD0nYXJtNjQnCn0KaWYgKCRhcmNoIC1lcSAnJykgewoiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlICckcCcuIgpxIDE5Ngp9CmlmICgnJyAtbmUgJycpIHsKJGVudjpodHRwX3Byb3h5ID0gJycKfQppZiAoJycgLW5lICcnKSB7CiRlbnY6aHR0cHNfcHJveHkgPSAnJwp9CiRzXz0oSm9pbi1QYXRoIChSZXNvbHZlLVBhdGggfikgJy52c2NvZGUtc2VydmVyJykKJ
[19:15:24.943] > GNsaURhdGFEaXI9KEpvaW4tUGF0aCAiJHNfIiAnY2xpJykKJGVudjpWU0NPREVfQUdFTlRfRk9MREVS
[19:15:24.943] > PSRzXwokbG9nPU5ldy1UZW1wb3JhcnlGaWxlCiRjXz0iY29kZSIKJGRfPSIkY18uZXhlIgokZV89IiRjXy0kcl8uZXhlIgokZl89IiRzX1wkZV8iCiR0Xz0nc3RhYmxlJwoka189JFRydWUKJGxfPSRGYWxzZQokZ2xvYmFsOnZfID0gJEZhbHNlCiRnbG9iYWw6d18gPSAnJwokZ2xvYmFsOm5fID0gJycKJGdsb2JhbDpvXyA9ICcnCiRnbG9iYWw6cF8gPSAnJwokZ2xvYmFsOnFfID0gJycKZnVuY3Rpb24gYWtfIHsKImxpc3RlbmluZ09uPT0kcG9ydD09Igoib3NSZWxlYXNlSWQ
[19:15:24.943] > 9PXdpbmRvd3M9PSIKIm9zVmVyc2lvbj09JGFpXz09IgoiYXJjaD09JGFyY2g9PSIKInBsYXRmb3JtPT13aW5kb3dzPT0iCiJ1bnBhY2tSZXN1bHQ9PSR3Xz09IgoiZGlkTG9jYWxEb3dubG9hZD09JHZfPT0iCiJkb3dubG9hZFRpbWU9PSRuXz09IgoiaW5zdGFsbFRpbWU9PSRvXz09IgoiZXh0SW5zdGFsbFRpbWU9PSRwXz09Igoic2VydmVyU3RhcnRUaW1lPT0kcV8
[19:15:24.944] > 9PSIKImV4ZWNTZXJ2ZXJUb2tlbj09NDI1MjVjOWQtNWJhMi00MjlmLTk1YmUtYmQxOWIwZjkyMDA1PT0iCn0KZnVuY3Rpb24gbV8gewpyZXR1cm4gW3N5c3RlbS5kaWFnbm9zdGljcy5zdG9wd2F0Y2hdOjpTdGFydE5ldygpOwp9CmZ1bmN0aW9uIHEoJGNvZGUpIHsKIiR7dXVpZH06IHN0YXJ0Igo
[19:15:24.944] > iZXhpdENvZGU9PSRjb2RlPT0iCmFrXwoiJHt1dWlkfTogZW5kIgp9CmZ1bmN0aW9uIGFfIHsKJHhfPSRQSUQKd2hpbGUgKCRUcnVlKSB7CiR5Xz0oZ2NpbSB3aW4zMl9wcm9jZXNzIHwgPyBwcm9jZXNzaWQgLWVxICR4XykucGFyZW50
[19:15:24.944] > cHJvY2Vzc2lkCmlmICghJHlfKSB7CiJubyBzc2hkIHBhcmVudCBwcm9jIgpleGl0IDAKfQppZiAoKGdwcyAtSWQgJHlfKS5OYW1lIC1lcSAnc3NoZCcpIHsKcm
[19:15:24.945] > V0dXJuICR5Xwp9CiR4Xz0keV8KfQp9CmZ1bmN0aW9uIGJfIHsKaWYgKCRsYXVuY2hlZENsaTFQaWQpIHsKaWYgKCEoZ3BzIC1JZCAkel8pKSB7CiJzZXJ2ZXIgZGllZCwgZXhpdCIKZXhpdCAwCn0KfSBlbHNlIHsKaWYgKCEoZ3BzIC1JZCAkc3NoZFBJRCkpIHs
[19:15:24.945] > KInNzaGQgcGFyZW50IGRpZWQsIGV4aXQiCmV4aXQgMAp9Cn0KfQpmdW5jdGlvbiBHZXRBcnRpZmFjdE5hbWUgewoiY2xpLXdpbjMyLSRhcmNoIgp9CmZ1bmN0aW9uIGdfIHsKJHM9bV8KIkRvd25sb2FkaW5nIGNsaSAkYXJjaCIKIiR7dXVpZH0lJTElJSIKJGFuP
[19:15:24.945] > UdldEFydGlmYWN0TmFtZQokc3Bs
[19:15:24.947] > YXQ9QHsKVXJpPSJodHRwczovL3VwZGF0ZS5jb2RlLnZpc3VhbHN0dWRpby5jb20vY29tbWl0OiRyXy8kYW4vJHRfIgpUaW1lb3V0U2VjPTIwCk91dEZpbGU9InZzY29kZS1jbGktJHJfLnppcCIKVXNlQmFzaWNQYXJzaW5nPSRUcnVlCn0KW05ldC5TZXJ2aWNlUG9pbnRNYW5hZ2VyXTo6U2VjdXJpdHlQcm90b2NvbCA9ICdUbHMxMicKaXJtIEBzcGxhdAokcy5TdG9wKCkKJGdsb2JhbDpuXyA9ICRzLkVsYXBzZWRNaWxsaXNlY29uZHMKfQpmdW5jdGlvbiBoXyB7CiRnbG9iYWw6d189J3N1Y2Nlc3MnCiRzPW1fCnRyeSB7CiRhY189W1N5c3RlbS5JTy5QYXRoXTo6R2V0UmFuZG9tRmlsZU5hbWUoKQokYWRfPSIkZW52OlRFTVBcJGFjXyIKIkV4cGFuZGluZyBjbGkgaW50byAkYWRfIgoiJHt1dWlkfSUlMiUlIgpFeHBhbmQtQXJjaGl2ZSAidnNjb2RlLWNsaS0kcl8uemlwIiAtRGVzdGluYXRpb25QYXRoICIkYWRfIgpjcCAiJGFkX1wkZF8iIC1EZXN0aW5hdGlvbiAkZl8KZGVsIC1SZWN1cnNlICRhZF8KZGVsICJ2c2NvZGUtY2xpLSRyXy56aXAiCiRzLlN0b3AoKQokZ2xvYmFsOm9fID0gJHMuRWxhcHNlZE1pbGxpc2Vjb25kc
[19:15:24.947] > wp9IGNhdGNoIHsKJGdsb2JhbDp3Xz0nZXJyb3InCiJGYWlsZWQgdG8gdW56aXAgY2xpLiAtICQoJF8uVG9TdHJpbmcoKSkiCmpfIDIwNQpoXwp9CmlmKCEoVGVzdC1QYXRoICIkZl8iKSkgewokZ2xvYmFsOndfPSdtaXNzaW5nRmlsZXMnCiJEb3dubG9hZGVkIHNlcnZlciBpcyBpbmNvbXBsZXRlLiIKal8gMjA1CmhfCn0KfQpmdW5jdGlvbiBhal8gewokcz1tXwppZihUZXN0LVBhdGggJGxvZykgewpkZWwgJGxvZwp9CiRlc2NhcGVkQ2xpRmlsZT0kZl8gLXJlcGxhY2UgJyAnLCAnYCAnCiRhcmdzPSJjb21tYW5kLXNoZWxsIC0tY2xpLWRhdGEtZGlyICckY2xpRGF0YURpcicgLS1wYXJlbnQtcHJvY2Vzcy1pZCAkc3NoZFBJRCAtLW9uLWhvc3QgMTI3LjAuMC4xIC0tb24tcG9ydCAtLXJlcXVpcmUtdG9rZW4gNDI1MjVjOWQtNWJhMi00MjlmLTk1YmUtYmQxOWIwZjkyMDA1ICo+ICckbG9nJyIKJHNwbGF0PUB7CkZpbGVQYXRoID0gInBvd2Vyc2hlbGwuZXhlIgpXaW5kb3dTdHlsZSA9ICJoaWRkZW4iCkFyZ3VtZW50TGlzdCA9IEAoCiItRXhlY3V0aW9uUG9saWN5IiwgIlVucmVzdHJpY3RlZCIsICItTm9Mb2dvIiwgIi1Ob1Byb2ZpbGUiLCAiLU5vbkludGVyYWN0aXZlIiwgI
[19:15:24.947] > i1jIiwgIiRlc2NhcGVkQ2xpRmlsZSAkYXJncyIKKQpQYXNzVGhydSA9ICRUcnVlCn0KIlN0YXJ0aW5nIGNsaTogJiAnJGZfJyAkYXJncyIKJGdsb2JhbDp6XyA9IChzdGFydCBAc3BsYXQpLklECiRzLlN0b3AoKQokZ2xvYmFsOnFfID0gJHMuRWxhcHNlZE1pbGxpc2Vjb25kcwp9CmZ1bmN0aW9uIGlfIHsKJGdsb2JhbDp2Xz0kVHJ1ZQoiVHJpZ2dlciBsb2NhbCBzZXJ2ZXIgZG93bmxvYWQiCiRhbj1HZXRBcnRpZmFjdE5hbWUKIiR7dXVpZH06dHJpZ2dlcl9zZXJ2ZXJ
[19:15:24.948] > fZG93bmxvYWQiCiJhcnRpZmFjdD09JGFuPT0iCiJkZXN0Rm9sZGVyPT0kc189PSIKImRlc3RGb2xkZXIyPT0vdnNjb2RlLWNsaS0kcl8uemlwPT0iCiIke3V1aWR9OnRyaWdnZXJfc2VydmVyX2Rvd25sb2FkX2VuZCIKIldhaXRpbmcgZm9yIGNsaWVudCB0byB0cmFuc2ZlciBzZXJ2ZXIgYXJjaGl2ZS4uLiIKIldhaXRpbmcgZm9yICRzX1x2c2NvZGUtY2xpLSRyXy56aXAuZG9uZSBhbmQgdnNjb2RlLWNsaS0kcl8uemlwIHRvIGV4aXN0Igp3aGlsZSgkVHJ1ZSkgewppZihUZXN0LVBhdGggIiRzX1x2c2NvZGUtY2xpLSRyXy56aXAuZG9uZSIpIHsKaWYoIShUZXN0LVBhdGggIiRzX1x2c2NvZGUtY2xpLSRyXy56
[19:15:24.948] > aXAiKSkgewoiVHJhbnNmZXIgZmFpbGVkIgpxIDE5OQp9CiJUcmFuc2ZlciBjb21wbGV0ZSIKZGVsICRzX1x2c2NvZGUtY2xpLSRyXy56aXAuZG9uZQpicmVhawp9IGVsc2UgewpTdGFydC1TbGVlcCAtU2Vjb25kcyAzCmJfCn0KfQp9CmZ1bmN0aW9uIGpfKCRjb2RlKSB7CmlmICgkdl8pIHsKIkFscmVhZHkgY
[19:15:24.949] > XR0ZW1wdGVkIGxvY2FsIGRvd25sb2FkLCBmYWlsaW5nIgpxICRjb2RlCn0gZWxzZWlmKCRrXykgewppXwp9IGVsc2UgewpxICRjb2RlCn0KfQpmdW5jdGlvbiBwcmludFJlc3VsdCgpIHsKIiR7dXVpZH06IHN0YXJ0IgoiU1NIX0FVVEhfU09DSz09JGVudjpTU0hfQVVUSF9TT0NLPT0iCmFrXwoiJHt1dWlkfTogZW5kIgp9CmZ1bmN0aW9uIG1haW4oKSB7CiRnbG9iYWw6c3NoZFBJRCA9IGFfCmlmKCEoVGVzdC1QYXRoICRzXykpIHsKJG09IkNvdWxkI
[19:15:24.949] > G5vdCBjcmVhdGUgQ0xJIGRpcmVjdG9yeSIKdHJ5IHsKJG51bGw9bmkgLWl0IGQgJHNfIC1mIC1lYSBzaQp9IGNhdGNoIHsKIiRtLiAtICQoJF8uVG9TdHJpbmcoKSkiCnJldHVybgp9CmlmKCEoVGVzdC1QYXRoICRzXykpIHsKIiRtIgpyZXR1cm4KfQp9CmNkICRzXwp0cnkgewoiTG9va2luZyBmb3IgZXhpc3RpbmcgQ0xJIGluICRzXyIKaWYoVGVzdC
[19:15:24.950] > 1QYXRoICIkZl8iKSB7CiJGb3VuZCBpbnN0YWxsZWQgQ0xJIgp9IGVsc2UgewppZiAoJGxfKSB7CmlfCn0gZWxzZSB7CnRyeSB7IGdfIH0gY2F0Y2ggewoiRG93bmxvYWQgZmFpbGVkLiAtICQoJF8uVG9TdHJpbmcoKSkiCmpfIDE5Mwp9Cn0KaF8KfQphal8KJGFnXz1AewpQYXRoID0gJ
[19:15:24.950] > GxvZwpQYXR0ZXJuID0gIkxpc3RlbmluZyBvbiAuKj86KFswLTldKykkIgp9CiRhZl89KEdldC1EYXRlKS5BZGRTZWNvbmRzKDQpCiRhbF89IlNlcnZlciBkaWQgbm90IHN0YXJ0IHN1Y2Nlc3NmdWxseS4gRnVsbCBzZXJ2ZXIgbG9nIGF0ICRsb2cgPj4+Igp3aGlsZSAoKEd
[19:15:24.950] > ldC1EYXRlKSAtbHQgJGFmXykgewppZihUZXN0LVBhdGggJGxvZykgewokYWhfPShzbHMgQGFnXykuTWF0Y2hlcy5Hcm91cHMKaWYoJGFoXykgewokZ2xvYmFsOnBvcnQgPSAkYWhfWzFdLlZhbHVlCmJyZ
[19:15:24.951] > WFrCn0KfQpzbGVlcCAtTWlsbGlzZWNvbmRzIDMwCn0KaWYgKCEkcG9ydCkgewokYWxfCmNhdCAkbG9nCiI8PDwgRW5kIG9mIHNlcnZlciBsb2ciCnEgMjAwCn0KfSBjYXRjaCB7CiJTZXJ2ZXIgZmFpbGVkIHRvIHN0YXJ0LiAtICQoJF8uVG9TdHJpbmcoKSkiCiIkKCRfLlNjcmlwdFN0YWNrVHJhY2UpIgp9CnRyeSB7CiRnbG9iYWw6YWlfID0gKGdjaW0gV2luMzJfT3BlcmF0aW5nU3lzdGVtKS5WZXJzaW9uCn0gY2F0Y2ggewoiRmFpbGVkIHR
[19:15:24.951] > vIGZpbmQgV2luZG93cyB2ZXJzaW9uIC0gJCgkXy5Ub1N0cmluZygpKSIKJGdsb2JhbDphaV8gPSAidW5rbm93biIKfQpwcmludFJlc3VsdAoiJHBpZCwgd2F0Y2hpbmcgJHNzaGRQSUQiCndoaWxlICgkVHJ1ZSkgewpiXwpzbGVlcCAzMAp9Cn0KImQ2Yzc4ODg5ODQwZjogcmVzdW1lTG9nIgptYWluCg==')))); powershell -ExecutionPolicy Unrestricted -NoLogo -NoProfile -NonInteractive -EncodedCommand `$remoteSSHConfigurationScript"
[19:15:25.466] > d6c78889840f: running
[19:15:25.467] > d6c78889840f: pauseLog
[19:15:25.591] > d6c78889840f: resumeLog
[19:15:26.267] > Looking for existing CLI in C:\Users\{remote_username}\.vscode-server
[19:15:26.269] > Found installed CLI
[19:15:26.280] > Starting cli: & 'C:\Users\{remote_username}\.vscode-server\code-f6cfa2ea2403534de03f069bdf160d06451ed282.exe' command-shell --cli-data-dir 'C:\Users\{remote_username}\.vscode-server\cli' --parent-process-id 29704 --on-host 127.0.0.1 --on-port --require-token 42525c9d-5ba2-429f-95be-bd19b0f92005 *> 'C:\Users\{remote_username}\AppData\Local\Temp\tmp971A.tmp'
[19:15:30.361] > Server did not start successfully. Full server log at C:\Users\{remote_username}\AppData\Local\Temp\tmp971A.tmp >>>
[19:15:30.363] > [2026-05-22 10:15:25] info No agent host supervisor running; starting one in the background
> <<< End of server log
[19:15:30.365] > d6c78889840f: start
[19:15:30.365] > exitCode==200==
[19:15:30.367] > listeningOn====
> osReleaseId==windows==
[19:15:30.367] > osVersion====
> arch==x64==
> platform==windows==
> unpackResult====
[19:15:30.368] > didLocalDownload==False==
[19:15:30.368] > 
> downloadTime====
> installTime====
> extInstallTime====
[19:15:30.370] > serverStartTime==70==
> execServerToken==11111a1a-1aa1-111a-11aa-aa11a1a11111==
> d6c78889840f: end
[19:15:30.370] Received install output: exitCode==200==listeningOn====
osReleaseId==windows==osVersion====
arch==x64==
platform==windows==
unpackResult====didLocalDownload==False==
downloadTime====
installTime====
extInstallTime====serverStartTime==70==
execServerToken==11111a1a-1aa1-111a-11aa-aa11a1a11111==

[19:15:30.371] Terminating local server
[19:15:30.373] Resolver error: Error: The VS Code Server failed to start
    at y.ServerInstallError (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:722178)
    at p (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:715799)
    at t.handleInstallOutput (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:718073)
    at e (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:776405)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async /home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:801487
    at async t.withShowDetailsEvent (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:805164)
    at async /home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:773148
    at async P (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:771214)
    at async t.resolveWithLocalServer (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:772701)
    at async A (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:798291)
    at async t.resolve (/home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:802578)
    at async /home/{username}/.vscode/extensions/ms-vscode-remote.remote-ssh-0.123.0/out/extension.js:2:1095407
[19:15:30.385] ------




[19:15:30.386]  ---------- [Session Summary] ----------- 
[19:15:30.386] [ServerFailedToStart]: Error: ServerFailedToStart (The VS Code Server failed to start)
[19:15:30.386]  ---------------------------------------- 
[19:15:30.389] Local server exit: 15

Expected Behavior

Remote-SSH should wait for the server download/install to complete and then continue startup successfully.

Actual Behavior

Remote-SSH fails with ServerFailedToStart before the download completes.

Steps To Reproduce
  1. Connect from a Linux client to a Windows SSH host using Remote-SSH.
  2. Ensure the VS Code Server is not fully installed on the remote, or remove it first.
  3. Start the connection with remote.SSH.useExecServer enabled. (maybe default setting)
Anything else?

The remote agent-host-stable.log shows that the server download is still in progress when the connection is already considered failed.

Relevant excerpt:

  • [2026-05-22 10:10:34] info Downloading server f6cfa2ea2403534de03f069bdf160d06451ed282
  • [2026-05-22 10:10:35] trace Downloading server: 0/110496730 (0%)
  • [2026-05-22 10:10:36] trace Downloading server: 2104983/110496730 (2%)
  • [2026-05-22 10:10:38] trace Downloading server: 29454964/110496730 (27%)

The failing bootstrap appears to give up after only a few seconds, which is shorter than the time needed for the initial server download on this host/network.

This looks like an early timeout or race in the exec-server bootstrap path on Windows remotes when the server is not yet present and must be downloaded.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure using a Linux client and Windows SSH host with the Remote-SSH exec-server path, starting from the Remote-SSH log and its server-download step. Compare the bootstrap behavior when the VS Code Server is absent on the remote; done means the server downloads and the connection completes successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, powershell
Domain
devtools, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.