Inspired by the issue you mentioned Remote SSH: Segmentation fault (SEGV_PKUERR) on CPUs without PKU support
I wen to Output of Remote-SSH and got curious on this error:
2026-03-19 13:51:38.593 [info] Using configured platform linux for remote host 10.10.20.56
2026-03-19 13:51:38.595 [info] Using askpass script: /home/sol-dev/.cursor/extensions/anysphere.remote-ssh-1.0.46/dist/scripts/launchSSHAskpass.sh with javascript file /home/sol-dev/.cursor/extensions/anysphere.remote-ssh-1.0.46/dist/scripts/sshAskClient.js. Askpass handle: /tmp/cursor-ssh-dqCGrR/socket.sock
2026-03-19 13:51:38.624 [info] Launching SSH server via shell with command: cat "/tmp/cursor_remote_install_cb3ca532-4cdf-4fbd-8a93-d3afed948e37.sh" | ssh -T -D 45903 10.10.20.56 bash --login -c bash
2026-03-19 13:51:38.625 [info] Establishing SSH connection: cat "/tmp/cursor_remote_install_cb3ca532-4cdf-4fbd-8a93-d3afed948e37.sh" | ssh -T -D 45903 10.10.20.56 bash --login -c bash
2026-03-19 13:51:38.625 [info] Started installation script. Waiting for it to finish...
2026-03-19 13:51:38.625 [info] Waiting for SSH handshake (timeout: 120s). Install timeout: 60s.
2026-03-19 13:51:39.028 [info] Askpass server received request: POST /
2026-03-19 13:51:39.029 [info] Askpass server received request body: {"request":"[email protected]'s password: "}
2026-03-19 13:51:39.029 [info] Pausing timeout; waiting for askpass response
2026-03-19 13:51:39.029 [info] Received SSH askpass request: [email protected]'s password:
2026-03-19 13:51:47.188 [info] Resuming timeout; askpass response received
2026-03-19 13:51:48.141 [info] (ssh_tunnel) stdout: Configuring Cursor Server on Remote
2026-03-19 13:51:48.141 [info] SSH connection established after 9515ms (first stdout received)
2026-03-19 13:51:48.153 [info] (ssh_tunnel) stdout: Using TMP_DIR: /run/user/1001
2026-03-19 13:51:48.327 [info] (ssh_tunnel) stdout: Locking /run/user/1001/cursor-remote-lock.100c211680af28d04a9e02450ad31d65
2026-03-19 13:51:48.359 [info] (ssh_tunnel) stdout: Server script already installed in /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/bin/cursor-server
2026-03-19 13:51:48.359 [info] (ssh_tunnel) stdout: Checking node executable
2026-03-19 13:51:48.381 [info] (ssh_tunnel) stdout: v20.18.2
2026-03-19 13:51:48.521 [info] (ssh_tunnel) stdout: Cleaning up old-style stale build multiplex-server
2026-03-19 13:51:48.538 [info] (ssh_tunnel) stdout: Checking for running multiplex server: /home/sol/.cursor-server/bin/multiplex-server/3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8.js
2026-03-19 13:51:48.633 [info] (ssh_tunnel) stdout: Running multiplex server:
2026-03-19 13:51:48.682 [info] (ssh_tunnel) stdout: Creating multiplex server token file /run/user/1001/cursor-remote-multiplex.token.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 13:51:48.696 [info] (ssh_tunnel) stdout: Creating directory for multiplex server: /home/sol/.cursor-server/bin/multiplex-server
2026-03-19 13:51:48.705 [info] (ssh_tunnel) stdout: Writing multiplex server script to /home/sol/.cursor-server/bin/multiplex-server/3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8.js
2026-03-19 13:51:48.716 [info] (ssh_tunnel) stdout: Starting multiplex server: /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/node /home/sol/.cursor-server/bin/multiplex-server/3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8.js d9e34929-cd0b-42f6-8c08-9b5713a5650f 0
2026-03-19 13:51:48.721 [info] (ssh_tunnel) stdout: Multiplex server started with PID 762265 and wrote pid to file /run/user/1001/cursor-remote-multiplex.pid.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
Reading multiplex server token file /run/user/1001/cursor-remote-multiplex.token.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 13:51:48.721 [info] (ssh_tunnel) stdout: Multiplex server token file found
2026-03-19 13:51:48.728 [info] (ssh_tunnel) stdout: Reading multiplex server log file /run/user/1001/cursor-remote-multiplex.log.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 13:51:49.254 [info] (ssh_tunnel) stdout: Multiplex server process 762265 exited during startup
2026-03-19 13:51:49.256 [info] (ssh_tunnel) stdout: Error multiplex server did not start successfully. Below are the logs
2026-03-19 13:51:49.262 [info] (ssh_tunnel) stdout: -rw-rw-r-- 1 sol sol 650 Mar 19 12:51 /run/user/1001/cursor-remote-multiplex.log.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 13:51:49.266 [info] (ssh_tunnel) stdout: node:internal/modules/package_json_reader:93
throw error;
^
SyntaxError: Error parsing /home/sol/package.json: Unexpected end of JSON input
at parse (<anonymous>)
at read (node:internal/modules/package_json_reader:80:16)
at readPackage (node:internal/modules/package_json_reader:141:10)
at readPackageScope (node:internal/modules/package_json_reader:164:19)
at shouldUseESMLoader (node:internal/modules/run_main:80:15)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:160:24)
at node:internal/main/run_main_module:28:49 {
path: '/home/sol/package.json'
}
Node.js v20.18.2
2026-03-19 13:51:49.268 [info] (ssh_tunnel) stdout: Checking for code servers
2026-03-19 13:51:49.402 [info] (ssh_tunnel) stdout: Code server script is already running /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/bin/cursor-server. Running processes are 728061 sh /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/bin/cursor-server --start-server --host=127.0.0.1 --port 0 --connection-token-file /run/user/1001/cursor-remote-code.token.100c211680af28d04a9e02450ad31d65 --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms
2026-03-19 13:51:49.409 [info] (ssh_tunnel) stdout: Code server log file is /run/user/1001/cursor-remote-code.log.100c211680af28d04a9e02450ad31d65
2026-03-19 13:51:49.438 [info] (ssh_tunnel) stdout: 65762d4983dee870edd2b085: start
2026-03-19 13:51:49.439 [info] (ssh_tunnel) stdout: exitCode==0==
nodeExecutable==/home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/node==
errorMessage====
isFatalError==false==
multiplexListeningOn====
multiplexConnectionToken==d9e34929-cd0b-42f6-8c08-9b5713a5650f==
codeListeningOn==36279==
codeConnectionToken==9c3f21b3-7bf9-4f5b-9f3f-b34376e394d5==
detectedPlatform==linux==
arch==x64==
SSH_AUTH_SOCK====
DISPLAY====
65762d4983dee870edd2b085: end
2026-03-19 13:51:49.450 [info] Server install command exit code: 0
2026-03-19 13:51:49.450 [error] Invalid multiplexListeningOn: . Continuing without exec server. Docker over SSH will NOT work.
2026-03-19 13:51:49.452 [info] Deleting local script /tmp/cursor_remote_install_cb3ca532-4cdf-4fbd-8a93-d3afed948e37.sh
2026-03-19 13:51:49.454 [info] [forwarding][code] creating new forwarding server
2026-03-19 13:51:49.455 [info] [forwarding][code] server listening on 127.0.0.1:43565
2026-03-19 13:51:49.456 [info] [forwarding][code] Set up server
2026-03-19 13:51:49.456 [info] [remote-ssh] codeListeningOn (remote=127.0.0.1:36279; local=127.0.0.1:43565) codeConnectionToken: 9c3f21b3-7bf9-4f5b-9f3f-b34376e394d5
2026-03-19 13:51:49.457 [info] [gpg-forwarding] GPG agent forwarding is disabled in settings
2026-03-19 13:51:49.474 [info] [remote-ssh] Resolved exec server. Socks port: 45903
2026-03-19 13:51:49.474 [info] Setting up 0 default forwarded ports
2026-03-19 13:51:49.474 [info] [remote-ssh] Resolved authority: {"host":"127.0.0.1","port":43565,"connectionToken":"9c3f21b3-7bf9-4f5b-9f3f-b34376e394d5","extensionHostEnv":{}}. Socks port: 45903
2026-03-19 13:51:49.487 [info] (ssh_tunnel) stdout: Unlocking /run/user/1001/cursor-remote-lock.100c211680af28d04a9e02450ad31d65
***********************************************************************
* This terminal is used to establish and maintain the SSH connection. *
* Closing this terminal will terminate the connection and disconnect *
* Cursor from the remote server. *
***********************************************************************
More spefically here:
SyntaxError: Error parsing /home/sol/package.json: Unexpected end of JSON input
at parse (<anonymous>)
Going to /home/sol/package.jsonI could see that the file was empty. And quite recent. No clue how this got there.
-rw-rw-r-- 1 sol sol 0 Mar 3 13:10 package.json
I removed this file and boom. Everything worked.
Remote-SSH Output
2026-03-19 14:21:35.963 [info] Resolving ssh remote authority '10.10.20.56' (Unparsed 'ssh-remote+10.10.20.56') (attempt #1)
2026-03-19 14:21:36.023 [info] SSH askpass server listening on /tmp/cursor-ssh-uN3yca/socket.sock
2026-03-19 14:21:36.026 [info] Using configured platform linux for remote host 10.10.20.56
2026-03-19 14:21:36.032 [info] Using askpass script: /home/sol-dev/.cursor/extensions/anysphere.remote-ssh-1.0.46/dist/scripts/launchSSHAskpass.sh with javascript file /home/sol-dev/.cursor/extensions/anysphere.remote-ssh-1.0.46/dist/scripts/sshAskClient.js. Askpass handle: /tmp/cursor-ssh-uN3yca/socket.sock
2026-03-19 14:21:36.057 [info] Launching SSH server via shell with command: cat "/tmp/cursor_remote_install_c1ccc484-75da-45d2-8c5a-24601243ce88.sh" | ssh -T -D 34779 10.10.20.56 bash --login -c bash
2026-03-19 14:21:36.057 [info] Establishing SSH connection: cat "/tmp/cursor_remote_install_c1ccc484-75da-45d2-8c5a-24601243ce88.sh" | ssh -T -D 34779 10.10.20.56 bash --login -c bash
2026-03-19 14:21:36.057 [info] Started installation script. Waiting for it to finish...
2026-03-19 14:21:36.057 [info] Waiting for SSH handshake (timeout: 120s). Install timeout: 60s.
2026-03-19 14:21:36.457 [info] Askpass server received request: POST /
2026-03-19 14:21:36.458 [info] Askpass server received request body: {"request":"[email protected]'s password: "}
2026-03-19 14:21:36.458 [info] Pausing timeout; waiting for askpass response
2026-03-19 14:21:36.458 [info] Received SSH askpass request: [email protected]'s password:
2026-03-19 14:21:43.502 [info] Resuming timeout; askpass response received
2026-03-19 14:21:44.701 [info] (ssh_tunnel) stdout: Configuring Cursor Server on Remote
2026-03-19 14:21:44.701 [info] SSH connection established after 8641ms (first stdout received)
2026-03-19 14:21:44.718 [info] (ssh_tunnel) stdout: Using TMP_DIR: /run/user/1001
2026-03-19 14:21:44.838 [info] (ssh_tunnel) stdout: Locking /run/user/1001/cursor-remote-lock.100c211680af28d04a9e02450ad31d65
2026-03-19 14:21:44.855 [info] (ssh_tunnel) stdout: Server script already installed in /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/bin/cursor-server
Checking node executable
2026-03-19 14:21:44.866 [info] (ssh_tunnel) stdout: v20.18.2
2026-03-19 14:21:44.934 [info] (ssh_tunnel) stdout: Cleaning up old-style stale build multiplex-server
2026-03-19 14:21:44.944 [info] (ssh_tunnel) stdout: Checking for running multiplex server: /home/sol/.cursor-server/bin/multiplex-server/3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8.js
2026-03-19 14:21:44.998 [info] (ssh_tunnel) stdout: Running multiplex server:
2026-03-19 14:21:45.021 [info] (ssh_tunnel) stdout: Creating multiplex server token file /run/user/1001/cursor-remote-multiplex.token.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 14:21:45.027 [info] (ssh_tunnel) stdout: Creating directory for multiplex server: /home/sol/.cursor-server/bin/multiplex-server
2026-03-19 14:21:45.031 [info] (ssh_tunnel) stdout: Writing multiplex server script to /home/sol/.cursor-server/bin/multiplex-server/3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8.js
2026-03-19 14:21:45.035 [info] (ssh_tunnel) stdout: Starting multiplex server: /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/node /home/sol/.cursor-server/bin/multiplex-server/3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8.js 70d1fed7-1094-4660-b259-33fb90d01821 0
2026-03-19 14:21:45.038 [info] (ssh_tunnel) stdout: Multiplex server started with PID 771529 and wrote pid to file /run/user/1001/cursor-remote-multiplex.pid.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 14:21:45.038 [info] (ssh_tunnel) stdout: Reading multiplex server token file /run/user/1001/cursor-remote-multiplex.token.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 14:21:45.039 [info] (ssh_tunnel) stdout: Multiplex server token file found
2026-03-19 14:21:45.042 [info] (ssh_tunnel) stdout: Reading multiplex server log file /run/user/1001/cursor-remote-multiplex.log.100c211680af28d04a9e02450ad31d65.3ce73d09cffc8f33c6d911e972bd0f6dabbe3e26e810844be8060e6b10987db8
2026-03-19 14:21:45.564 [info] (ssh_tunnel) stdout: Checking for code servers
2026-03-19 14:21:45.683 [info] (ssh_tunnel) stdout: Code server script is already running /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/bin/cursor-server. Running processes are 728061 sh /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/bin/cursor-server --start-server --host=127.0.0.1 --port 0 --connection-token-file /run/user/1001/cursor-remote-code.token.100c211680af28d04a9e02450ad31d65 --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms
2026-03-19 14:21:45.689 [info] (ssh_tunnel) stdout: Code server log file is /run/user/1001/cursor-remote-code.log.100c211680af28d04a9e02450ad31d65
2026-03-19 14:21:45.729 [info] (ssh_tunnel) stdout: a20fea1b9a883fc5ed21c786: start
exitCode==0==
2026-03-19 14:21:45.730 [info] (ssh_tunnel) stdout: nodeExecutable==/home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/node==
errorMessage====
isFatalError==false==
2026-03-19 14:21:45.730 [info] (ssh_tunnel) stdout: multiplexListeningOn==39703==
multiplexConnectionToken==70d1fed7-1094-4660-b259-33fb90d01821==
codeListeningOn==36279==
codeConnectionToken==9c3f21b3-7bf9-4f5b-9f3f-b34376e394d5==
detectedPlatform==linux==
arch==x64==
SSH_AUTH_SOCK====
DISPLAY====
a20fea1b9a883fc5ed21c786: end
2026-03-19 14:21:45.736 [info] Server install command exit code: 0
2026-03-19 14:21:45.737 [info] Deleting local script /tmp/cursor_remote_install_c1ccc484-75da-45d2-8c5a-24601243ce88.sh
2026-03-19 14:21:45.739 [info] [forwarding][code] creating new forwarding server
2026-03-19 14:21:45.743 [info] [forwarding][code] server listening on 127.0.0.1:33875
2026-03-19 14:21:45.745 [info] [forwarding][code] Set up server
2026-03-19 14:21:45.746 [info] [remote-ssh] codeListeningOn (remote=127.0.0.1:36279; local=127.0.0.1:33875) codeConnectionToken: 9c3f21b3-7bf9-4f5b-9f3f-b34376e394d5
2026-03-19 14:21:45.747 [info] [forwarding][multiplex] creating new forwarding server
2026-03-19 14:21:45.750 [info] [forwarding][multiplex] server listening on 127.0.0.1:46545
2026-03-19 14:21:45.750 [info] [forwarding][multiplex] Set up server
2026-03-19 14:21:45.758 [info] [remote-ssh] multiplexListeningOn (remote=[object Object]; local=[object Object]) multiplexConnectionToken: 70d1fed7-1094-4660-b259-33fb90d01821
2026-03-19 14:21:45.759 [info] [remote-ssh] Pinging remote server via 127.0.0.1:46545...
2026-03-19 14:21:45.759 [info] [gpg-forwarding] GPG agent forwarding is disabled in settings
2026-03-19 14:21:45.764 [info] [remote-ssh] Resolved exec server. Socks port: 34779
2026-03-19 14:21:45.764 [info] Setting up 0 default forwarded ports
2026-03-19 14:21:45.764 [info] [remote-ssh] Resolved authority: {"host":"127.0.0.1","port":33875,"connectionToken":"9c3f21b3-7bf9-4f5b-9f3f-b34376e394d5","extensionHostEnv":{}}. Socks port: 34779
2026-03-19 14:21:45.772 [info] (ssh_tunnel) stdout: Unlocking /run/user/1001/cursor-remote-lock.100c211680af28d04a9e02450ad31d65
***********************************************************************
* This terminal is used to establish and maintain the SSH connection. *
* Closing this terminal will terminate the connection and disconnect *
* Cursor from the remote server. *
***********************************************************************
Typescript - Output
2026-03-19 13:21:54.615 [info] Starting TS Server
2026-03-19 13:21:54.615 [info] Using tsserver from: /home/sol/.cursor-server/bin/linux-x64/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760/extensions/node_modules/typescript/lib/tsserver.js
2026-03-19 13:21:54.615 [info] <syntax> Falling back to legacy node.js based file watching because of user settings.
2026-03-19 13:21:54.615 [info] <syntax> Trace directory: /home/sol/.cursor-server/data/logs/20260319T084800/exthost4/vscode.typescript-language-features/tsserver-syntax-log-TglnSu
2026-03-19 13:21:54.615 [info] <syntax> Forking...
2026-03-19 13:21:54.615 [info] <syntax> Starting...
2026-03-19 13:21:54.615 [info] <semantic> Falling back to legacy node.js based file watching because of user settings.
2026-03-19 13:21:54.615 [info] <semantic> Trace directory: /home/sol/.cursor-server/data/logs/20260319T084800/exthost4/vscode.typescript-language-features/tsserver-semantic-log-FJFU3n
2026-03-19 13:21:54.615 [info] <semantic> Forking...
2026-03-19 13:21:54.615 [info] <semantic> Starting...
Thank you for help. It gave me good insight to go there.
I believe you can check this and turn into a guard implementation for these type of weird cases.