[Remote SSH]: Code server did not start successfully

Describe the Bug

Vscode is work fine, but cursor can not connet my server

 66700K .......... ..........
2025-06-16 14:50:14.266 [info] (ssh_tunnel) stdout:  .......... .......... .......... 99%  325K 0s
 66750K .......... .......... .......... .......... .         100%  109M=4m9s

2025-06-16 14:50:14 (268 KB/s) - ‘cursor-server-90254e93-f3f1-4169-8743-f8c24c8b8051.tar.gz’ saved [68394992/68394992]


2025-06-16 14:50:16.037 [info] (ssh_tunnel) stdout: yongshuai_wang@ubuntu-DeepLearning-4801017:~$ echo "Checking node executable"
Checking node executable
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<017:~$ if ! $SERVER_NODE_EXECUTABLE --version; then
> 
2025-06-16 14:50:16.037 [info] (ssh_tunnel) stdout: 
<DE_EXECUTABLE is not working, checking system node"
>     SYSTEM_NODE=$(which node)
>     if [[ -n "$SYSTEM_NODE" ]]; then
>         echo "System node version: $($SYSTEM_NODE --version)"
> 
<(parseInt(process.version.slice(1)) >= 20 ? 0 : 1)"
>         if [[ $? -eq 0 ]]; then
>             echo "System node version is 20 or higher, creating symlink"
>             ln -sf $SYSTEM_NODE $SERVER_NODE_EXECUTABLE
> 
<mlink from $SERVER_NODE_EXECUTABLE to $SYSTEM_NODE"
>         else
> 
<l NodeJS 20 or higher on your remote system" "true"
>         fi
>     else
> 
2025-06-16 14:50:16.043 [info] (ssh_tunnel) stdout: 
<l NodeJS 20 or higher on your remote system" "true"
>     fi
> fi
v20.18.2
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ # Clean up stale builds
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<ITS=$(ls -1 -t "$SERVER_DATA_DIR/bin" | tail -n +6)
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<rning-4801017:~$ for OLD_COMMIT in $OLD_COMMITS; do
> 
<_COMMIT | grep -v grep | wc -l | tr -d '[:space:]'`
>     if [[ $IS_RUNNING -eq 0 ]]; then
>         echo "Cleaning up stale build $OLD_COMMIT"
>         if [[ "$OLD_COMMIT" != "$SERVER_COMMIT" ]]; then
> 
</bin/$OLD_COMMIT" "$SERVER_DATA_DIR/.$OLD_COMMIT.*"
>         fi
>     else
>         echo "Build $OLD_COMMIT is still running, skipping"
>     fi
> done
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
Iyongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<01017:~$ # Try to find if server is already running
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<running multiplex server: $MULTIPLEX_SERVER_SCRIPT"
Checking for running multiplex server: /home/yongshuai_wang/.cursor-server/bin/multiplex-server/6f1b3e4b3170f5c7e88d1a15ae5c80182a74799f35540e2d611693e0d8ecb19f.js
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<1017:~$ if [[ -f $MULTIPLEX_SERVER_PIDFILE ]]; then
>     MULTIPLEX_SERVER_PID="$(cat $MULTIPLEX_SERVER_PIDFILE)"
> 
<TIPLEX_SERVER_PID | grep $MULTIPLEX_SERVER_SCRIPT)"
> else
> 
<-A | grep $MULTIPLEX_SERVER_SCRIPT | grep -v grep)"
> fi

2025-06-16 14:50:16.257 [info] (ssh_tunnel) stdout: yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<ultiplex server: $MULTIPLEX_SERVER_RUNNING_PROCESS"

2025-06-16 14:50:16.258 [info] (ssh_tunnel) stdout: Running multiplex server: 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<OGFILE || ! -f $MULTIPLEX_SERVER_TOKENFILE ]]; then
>     if [[ -f $MULTIPLEX_SERVER_LOGFILE ]]; then
> 
2025-06-16 14:50:16.262 [info] (ssh_tunnel) stdout:         rm $MULTIPLEX_SERVER_LOGFILE
>     fi
>     if [[ -f $MULTIPLEX_SERVER_TOKENFILE ]]; then
>         rm $MULTIPLEX_SERVER_TOKENFILE
>     fi
> 
>     touch $MULTIPLEX_SERVER_TOKENFILE
>     chmod 600 $MULTIPLEX_SERVER_TOKENFILE
> 
<ECTION_TOKEN="d3a817fc-3771-4b6b-bee5-a594776b8024"
>     echo $MULTIPLEX_SERVER_CONNECTION_TOKEN > $MULTIPLEX_SERVER_TOKENFILE
> 
> 
<e manually inject it into the extension host later.
> 
<s from being used across ALL connections by default
> 
>     # Backing it up, NOT exporting it
>     if [[ -n "$SSH_AUTH_SOCK" ]]; then
>         ORIGINAL_SSH_AUTH_SOCK=$SSH_AUTH_SOCK
>         unset SSH_AUTH_SOCK
>     fi
> 
> 
<tiplex server: $(dirname $MULTIPLEX_SERVER_SCRIPT)"
>     mkdir -p $(dirname "$MULTIPLEX_SERVER_SCRIPT")
>     echo "Writing multiplex server script to $MULTIPLEX_SERVER_SCRIPT"
> 
2025-06-16 14:50:16.269 [info] (ssh_tunnel) stdout: 
<dev/null || base64 -D) > "$MULTIPLEX_SERVER_SCRIPT"

2025-06-16 14:50:16.270 [info] (ssh_tunnel) stdout: > 
> 
2025-06-16 14:50:16.272 [info] (ssh_tunnel) stdout: 
<X_SERVER_SCRIPT $MULTIPLEX_SERVER_CONNECTION_TOKEN"
> 
2025-06-16 14:50:16.272 [info] (ssh_tunnel) stdout: 
<R_CONNECTION_TOKEN"  &> $MULTIPLEX_SERVER_LOGFILE &
>     echo $! > $MULTIPLEX_SERVER_PIDFILE
> 
> 
2025-06-16 14:50:16.274 [info] (ssh_tunnel) stdout:     # Restoring the original SSH_AUTH_SOCK
>     if [[ -n "$ORIGINAL_SSH_AUTH_SOCK" ]]; then
>         export SSH_AUTH_SOCK=$ORIGINAL_SSH_AUTH_SOCK
>         unset ORIGINAL_SSH_AUTH_SOCK
>     fi
> else
> 
<ng processes are $MULTIPLEX_SERVER_RUNNING_PROCESS"

2025-06-16 14:50:16.276 [info] (ssh_tunnel) stdout: > fi

2025-06-16 14:50:16.279 [info] (ssh_tunnel) stdout: Creating directory for multiplex server: /home/yongshuai_wang/.cursor-server/bin/multiplex-server

2025-06-16 14:50:16.284 [info] (ssh_tunnel) stdout: Writing multiplex server script to /home/yongshuai_wang/.cursor-server/bin/multiplex-server/6f1b3e4b3170f5c7e88d1a15ae5c80182a74799f35540e2d611693e0d8ecb19f.js

2025-06-16 14:50:16.287 [info] (ssh_tunnel) stdout: Starting multiplex server: /home/yongshuai_wang/.cursor-server/bin/53b99ce608cba35127ae3a050c1738a959750860/node /home/yongshuai_wang/.cursor-server/bin/multiplex-server/6f1b3e4b3170f5c7e88d1a15ae5c80182a74799f35540e2d611693e0d8ecb19f.js d3a817fc-3771-4b6b-bee5-a594776b8024
[2] 3450397

2025-06-16 14:50:16.288 [info] (ssh_tunnel) stdout: yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
2025-06-16 14:50:16.288 [info] (ssh_tunnel) stdout: 
<plex server token file $MULTIPLEX_SERVER_TOKENFILE"
Reading multiplex server token file /home/yongshuai_wang/.cursor-server/.53b99ce608cba35127ae3a050c1738a9597508606f1b3e4b3170f5c7e88d1a15ae5c80182a74799f35540e2d611693e0d8ecb19f.multiplex.token
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
2025-06-16 14:50:16.293 [info] (ssh_tunnel) stdout: 
<17:~$ if [[ -f $MULTIPLEX_SERVER_TOKENFILE ]]; then
>     echo "Multiplex server token file found"
>     MULTIPLEX_SERVER_CONNECTION_TOKEN="$(cat $MULTIPLEX_SERVER_TOKENFILE)"
> else
> 
< token file not found: $MULTIPLEX_SERVER_TOKENFILE"
> fi
Multiplex server token file found
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<ultiplex server log file $MULTIPLEX_SERVER_LOGFILE"
Reading multiplex server log file /home/yongshuai_wang/.cursor-server/.53b99ce608cba35127ae3a050c1738a9597508606f1b3e4b3170f5c7e88d1a15ae5c80182a74799f35540e2d611693e0d8ecb19f.multiplex.log
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ for i in {1..20}; do
>     if [[ -f $MULTIPLEX_SERVER_LOGFILE ]]; then
> 
<listening on .+' | sed 's/Server listening on //')"
>         if [[ -n "$MULTIPLEX_LISTENING_ON" ]]; then
>             break

2025-06-16 14:50:16.293 [info] (ssh_tunnel) stdout: >         fi
>     fi
>     sleep 0.5
> done

2025-06-16 14:50:16.802 [info] (ssh_tunnel) stdout: yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<1017:~$ if [[ -z "$MULTIPLEX_LISTENING_ON" ]]; then
>     echo "Error multiplex server did not start successfully"
>     # Reading the logfile, to help with debugging
>     cat $MULTIPLEX_SERVER_LOGFILE || true
> 
<xit 1 "Multiplex server did not start successfully"

2025-06-16 14:50:16.803 [info] (ssh_tunnel) stdout: > fi
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<earning-4801017:~$ echo "Checking for code servers"
Checking for code servers
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<g-4801017:~$ if [[ -f $CODE_SERVER_PIDFILE ]]; then
>     CODE_SERVER_PID="$(cat $CODE_SERVER_PIDFILE)"
> 
<ep -w $CODE_SERVER_PID | grep $CODE_SERVER_SCRIPT)"
> else
> 
<args -A | grep $CODE_SERVER_SCRIPT | grep -v grep)"
> fi

2025-06-16 14:50:17.002 [info] (ssh_tunnel) stdout: yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<les exists; otherwise we need to start a new server
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<VER_TOKENFILE || ! -f $CODE_SERVER_LOGFILE ]]; then
>     echo "Code server script is not running"
> 
2025-06-16 14:50:17.002 [info] (ssh_tunnel) stdout:     if [[ -f $CODE_SERVER_LOGFILE ]]; then
>         rm $CODE_SERVER_LOGFILE
>     fi
>     if [[ -f $CODE_SERVER_TOKENFILE ]]; then
>         rm $CODE_SERVER_TOKENFILE
>     fi
> 
>     touch $CODE_SERVER_TOKENFILE

2025-06-16 14:50:17.002 [info] (ssh_tunnel) stdout: >     chmod 600 $CODE_SERVER_TOKENFILE
>     CODE_SERVER_CONNECTION_TOKEN="7176e82a-ae42-4877-bd95-5b2b223e0eaf"
>     echo $CODE_SERVER_CONNECTION_TOKEN > $CODE_SERVER_TOKENFILE
> 
> 
<e manually inject it into the extension host later.
> 
<s from being used across ALL connections by default
> 
>     # Backing it up, NOT exporting it
>     if [[ -n "$SSH_AUTH_SOCK" ]]; then
>         ORIGINAL_SSH_AUTH_SOCK=$SSH_AUTH_SOCK
>         unset SSH_AUTH_SOCK
>     fi
> 
> 
<ept-server-license-terms &> $CODE_SERVER_LOGFILE &"
> 
> 
<cept-server-license-terms &> $CODE_SERVER_LOGFILE &
>     echo $! > $CODE_SERVER_PIDFILE
> 
>     # Restoring the original SSH_AUTH_SOCK
>     if [[ -n "$ORIGINAL_SSH_AUTH_SOCK" ]]; then
>         export SSH_AUTH_SOCK=$ORIGINAL_SSH_AUTH_SOCK
>         unset ORIGINAL_SSH_AUTH_SOCK
>     fi
> else
> 
<Running processes are $CODE_SERVER_RUNNING_PROCESS"
> fi
Code server script is not running

2025-06-16 14:50:17.003 [info] (ssh_tunnel) stdout: Starting code server script /home/yongshuai_wang/.cursor-server/bin/53b99ce608cba35127ae3a050c1738a959750860/bin/cursor-server --start-server --host=127.0.0.1 --port 0  --connection-token-file /home/yongshuai_wang/.cursor-server/.53b99ce608cba35127ae3a050c1738a959750860.code.token --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms &> /home/yongshuai_wang/.cursor-server/.53b99ce608cba35127ae3a050c1738a959750860.code.log &
[3] 3450539

2025-06-16 14:50:17.008 [info] (ssh_tunnel) stdout: yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<4801017:~$ if [[ -f $CODE_SERVER_TOKENFILE ]]; then
>     CODE_SERVER_CONNECTION_TOKEN="$(cat $CODE_SERVER_TOKENFILE)"
> else
> 
<erver token file not found: $CODE_SERVER_TOKENFILE"
> fi
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ for i in {1..20}; do
>     if [[ -f $CODE_SERVER_LOGFILE ]]; then
> 
<+' | sed 's/Extension host agent listening on //')"
>         if [[ -n "$CODE_LISTENING_ON" ]]; then
>             break
>         fi
>     fi
>     sleep 0.5
> done

2025-06-16 14:50:17.513 [info] (ssh_tunnel) stdout: yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ 
<g-4801017:~$ if [[ -z "$CODE_LISTENING_ON" ]]; then
>     echo "Error code server did not start successfully"
>     # Reading the logfile, to help with debugging
>     cat $CODE_SERVER_LOGFILE || true
> 
2025-06-16 14:50:17.514 [info] (ssh_tunnel) stdout: 
< 1 "Code server did not start successfully" "false"
> fi
yongshuai_wang@ubuntu-DeepLearning-4801017:~$ print_install_results_and_wait


Steps to Reproduce

Platform: windows
Remote-ssh: 1.0.12

Operating System

Windows 10/11

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.0.0
Vscode version: 1.99.3

Hi @HPUedCSLearner, thanks for reporting this issue and sharing the logs. However, the first set of logs look like they are mangled. Could you try sharing them again so we can take a look at what is happening? Thanks!

Hi @HPUedCSLearner, I still am unable to parse the logs – it appears to be the source code for some sections, and many line are truncated. I’ll take a guess that this might be because of some flag set in a ~/.bashrc, ~/.bash_profile, or ~/.profile on your remote machine. Could you try restoring these files to the defaults?

Anybody can help me!!! THKs

Hi @HPUedCSLearner – it still looks like the logs are getting malformed. They should look something like this: https://forum.cursor.com/uploads/short-url/zqytJjlK77AOVrHR1fli6vNV8w3.txt

It’s possible that something is intercepting the bash commands, which is preventing the server from starting.