Remote-SSH Cursor Server Installation Fails — "Could not acquire lock after multiple attempts"

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

The Remote SSH installer consistently stalls during the install/cleanup phase and then fails with “Failed to install server within the timeout,” even though authentication and shell startup succeed. This began only after reinstalling Cursor using the latest macOS ARM64 installer from the official site; prior to the reinstall, this flow worked on the same environment.

The install script prints “Configuring Cursor Server on Remote,” selects a TMP directory under /run/user/, reports that no prior code/multiplex servers are running, prints “Removing all existing Cursor installations,” and then makes no further progress until the global timeout elapses. No sensitive identifiers (hostnames/IPs/usernames) are included here.

Steps to Reproduce

On macOS (ARM64 build of Cursor freshly reinstalled from the official installer), open Cursor and use Remote SSH to connect to a Linux host in an HPC/Slurm environment.

Watch the Remote - SSH output: after initial configuration/cleanup messages, the sequence stalls at “Removing all existing Cursor installations.”

Wait ~3 minutes; the client fails with “Failed to install server within the timeout.” Reattempts reproduce the same stall and timeout.

Expected Behavior

After cleanup, the installer should proceed to download or detect the server payload, extract into ~/.cursor-server/bin//, start the remote server, emit listening/connection token markers, and complete the handshake, rather than stalling and timing out.

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 0.50.5 (Universal)
VSCode Version: 1.96.2
Commit: 96e5b01ca25f8fbd4c4c10bc69b15f6228c80770

Additional Information

Logs here:
2025-08-26 21:57:08.488 [info] Resolving ssh remote authority ‘host’ (attempt #1)
2025-08-26 21:57:08.493 [info] SSH askpass server listening on /tmp/cursor-ssh-/socket.sock
2025-08-26 21:57:08.493 [info] Using configured platform linux for remote host host
2025-08-26 21:57:08.494 [info] Using askpass script: ~/.cursor/extensions/anysphere.remote-ssh-1.0.26/dist/scripts/launchSSHAskpass.sh
2025-08-26 21:57:08.497 [info] Launching SSH server via shell with command: cat "/tmp/cursor_remote_install_
.sh" | ssh -T -D 54027 host bash --login -c bash
2025-08-26 21:57:08.497 [info] Started installation script. Waiting for it to finish…
2025-08-26 21:57:11.114 [info] (ssh_tunnel) stdout: Configuring Cursor Server on Remote
2025-08-26 21:57:11.118 [info] (ssh_tunnel) stdout: Using TMP_DIR: /run/user/***
2025-08-26 21:57:11.140 [info] (ssh_tunnel) stdout: Killing all running Cursor servers
2025-08-26 21:57:11.323 [info] (ssh_tunnel) stdout: No running code servers found
2025-08-26 21:57:11.325 [info] (ssh_tunnel) stdout: Killing all running multiplex servers
2025-08-26 21:57:11.505 [info] (ssh_tunnel) stdout: No running multiplex servers found
2025-08-26 21:57:11.507 [info] (ssh_tunnel) stdout: Removing all existing Cursor installations

2025-08-26 22:00:11.513 [error] Error installing server: Failed to install server within the timeout
2025-08-26 22:00:11.515 [error] Error resolving SSH authority Failed to install server within the timeout

2025-08-26 22:03:19.643 [info] (ssh_tunnel) stderr: rm: cannot remove ‘/home//.cursor-server/bin//node_modules’: Directory not empty

2025-08-26 22:04:37.487 [info] (ssh_tunnel) stdout: Deleting left behind cursor servers, except for /home//.cursor-server/cursor-server-.tar.gz
2025-08-26 22:06:10.939 [info] (ssh_tunnel) stdout: Done deleting left behind cursor servers
2025-08-26 22:06:11.174 [info] (ssh_tunnel) stdout: Locking /run/user//cursor-remote-lock.

2025-08-26 22:06:11.220 [info] (ssh_tunnel) stdout: Downloading server via wget from https://downloads.cursor.com/production/***/linux/x64/cursor-reh-linux-x64.tar.gz
2025-08-26 22:06:11.358 [info] (ssh_tunnel) stderr: 200 OK (62 MB) [application/gzip]
2025-08-26 22:06:13.033 [info] (ssh_tunnel) stdout: Extracting server contents

2025-08-26 22:10:32.889 [info] Resolving ssh remote authority ‘host’ (attempt #1)
2025-08-26 22:10:32.902 [info] Using askpass script: ~/.cursor/extensions/anysphere.remote-ssh-1.0.26/dist/scripts/launchSSHAskpass.sh
2025-08-26 22:10:32.905 [info] Launching SSH server with install script …
2025-08-26 22:10:37.129 [info] (ssh_tunnel) stdout: Configuring Cursor Server on Remote
2025-08-26 22:10:37.338 [info] (ssh_tunnel) stdout: Killing all running Cursor servers
2025-08-26 22:10:37.550 [info] (ssh_tunnel) stdout: No running code servers found
2025-08-26 22:10:37.723 [info] (ssh_tunnel) stdout: No running multiplex servers found
2025-08-26 22:10:37.723 [info] (ssh_tunnel) stdout: Removing all existing Cursor installations

2025-08-26 22:12:00.084 [info] (ssh_tunnel) stderr: rm: cannot remove ‘/home//.cursor-server/bin//node_modules’: Directory not empty
2025-08-26 22:13:00.299 [info] (ssh_tunnel) stdout: Deleting leftover cursor servers
2025-08-26 22:14:48.118 [info] (ssh_tunnel) stdout: Done deleting

2025-08-26 22:14:48.327 [info] (ssh_tunnel) stdout: Locking /run/user//cursor-remote-lock.
2025-08-26 22:14:48.328 [info] (ssh_tunnel) stderr: ln: failed to create hard link ‘/run/user//cursor-remote-lock.’: File exists
(repeated many times…)

2025-08-26 22:15:18.527 [info] (ssh_tunnel) stdout: start
exitCode==1==
nodeExecutable==/home//.cursor-server/bin//node==
errorMessage==Could not acquire lock after multiple attempts==
detectedPlatform==linux==
arch==x64==
… end

2025-08-26 22:15:18.532 [error] Error installing server: Couldn’t install Cursor Server, install script returned non-zero exit status: Could not acquire lock after multiple attempts

The “Most recent scrubbed log pattern” is fine to keep verbatim; it describes installer phases generically and doesn’t assume HPC:

“Configuring Cursor Server on Remote”

“Using TMP_DIR: /run/user/”

“Killing all running Cursor servers” → “No running code servers found”

“Killing all running multiplex servers” → “No running multiplex servers found”

“Removing all existing Cursor installations”

Then no further output until “Failed to install server within the timeout.”

Does this stop you from using Cursor

Yes - Cursor is unusable

Try to reload the remote-ssh? If it’s not working, try to check the version of remote-ssh

@sriola Yes, I’ve tried both of these steps and also depreciating the remote ssh version to 1.0.25 but that doesn’t seem to fix these errors. Is there anything else you could recommend.

@ravirahman Hey Ravi, I saw that you were able to help a lot of other folks debug on similar threads. Would really appreciate your expertise here!

Hi @Kyle_Zheng , it looks like there is an issue with performing a clean installation automatically. Could you try manually removing the remote state? This will wipe any remote extensions and settings that you may have.

rm -rf ~/.cursor-server /run/user/XXXX/cursor-remote-lock.* /run/user/XXXX/cursor-remote-lock.*.target

(Replace XXX with what was redacted)