Cursor Remote SSH crashes on Alpine Linux via cursor-proclist module

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Disclaimer

This issue was investigated with the assistance of an AI. A reproducible workaround was identified, but the exact root cause still needs to be confirmed by the Cursor engineering team.

Cursor Remote SSH consistently crashes on an Alpine Linux remote host shortly after the Extension Host starts.

The SSH connection itself works correctly, the multiplex server starts successfully, and the Cursor code server initially binds to localhost and accepts connections.

A few seconds after the Extension Host is launched, the remote Cursor server logs:

[CursorProclistService] Config enabled feature (subsample every 10s; memoryPressureMonitorEnabled=true)
Segmentation fault

The Cursor code server then dies, causing Remote SSH to report:

Connection refused

I isolated the crash to the native cursor-proclist module:

node_modules/cursor-proclist/build/Release/cursor_proclist.node

If I rename or remove only this native module, Cursor detects that the module is unavailable, disables proclist metrics, and continues working normally:

[CursorProclistService] Native module unavailable; disabling proclist metrics

After disabling this module, the Cursor Remote SSH server, Extension Host, file watcher, and multiplex server remain running, and the remote session is usable.

The issue still occurs with a freshly downloaded Cursor 3.17.8 remote server.

Steps to Reproduce

  1. Connect to an x64 Alpine Linux 3.23.2 remote host using Cursor Remote SSH.
  2. Let Cursor install a fresh remote server.
  3. Open a remote workspace and wait for the Extension Host to start.
  4. After a few seconds, the remote Cursor server logs:
[CursorProclistService] Config enabled feature (subsample every 10s; memoryPressureMonitorEnabled=true)
Segmentation fault
  1. The Cursor code server process terminates and the Remote SSH connection starts failing with:
connect failed: Connection refused
  1. Rename the native cursor-proclist module:
mv \
  node_modules/cursor-proclist/build/Release/cursor_proclist.node \
  node_modules/cursor-proclist/build/Release/cursor_proclist.node.disabled
  1. Restart the Cursor Remote SSH connection.
  2. Cursor now reports:
[CursorProclistService] Native module unavailable; disabling proclist metrics
  1. The remote server, Extension Host, file watcher and multiplex server remain running, and the Remote SSH session stays usable.

Expected Behavior

Cursor Remote SSH should remain connected and the remote code server should not crash when CursorProclistService is enabled.

If the native cursor_proclist.node module is incompatible with the remote operating system or CPU, Cursor should gracefully disable proclist metrics and continue running instead of terminating the entire remote server with a segmentation fault.

Operating System

Linux

Version Information

Cursor IDE: 3.17.8
Remote SSH extension: 1.1.14
Remote server build: 2fdd31c9f33f7fbe501f2d57772dc5bf64b63620
Remote Node.js runtime: v22.22.1
Remote OS: Alpine Linux 3.23.2 x64
Remote kernel: 6.18.2-0-lts
Virtualization: Proxmox VE VM
VM CPU type: host

Additional Information

The remote machine is a Proxmox VE virtual machine configured with cpu: host.

The physical Proxmox host itself does not expose the pku CPU flag, and therefore the guest VM does not expose it either:

HOST PKU: NOT supported
VM PKU: NOT supported

This may be relevant because previous Cursor Remote SSH issues have involved CPU feature compatibility, although I cannot confirm that the absence of PKU is the direct cause of this specific crash.

Direct SSH access works correctly, and SSH TCP forwarding also works. The failure occurs only after the Cursor remote code server starts and the native cursor_proclist.node module is loaded.

Disabling only the following native module:

node_modules/cursor-proclist/build/Release/cursor_proclist.node

prevents the segmentation fault. Cursor then gracefully disables proclist metrics and the Remote SSH session remains stable.

I also tested --jitless as a diagnostic workaround, but with the bundled Node.js v22.22.1 runtime it disables WebAssembly and causes Node’s undici implementation to fail, so this is not a viable workaround.

The most reliable workaround found so far is to disable cursor_proclist.node.

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey @enzofrnt ,
We reproduced it and confirmed it’s on our side: the Alpine remote server was shipping a build of that process-monitoring module that isn’t compatible with musl, so it segfaults the whole remote server shortly after connect. Nothing wrong with your setup, and the PKU flag is unrelated here.

Your workaround is the right one for now - renaming node_modules/cursor-proclist/build/Release/cursor_proclist.node makes the server disable those metrics and stay up (you’ll need to redo it after a server reinstall/update).

This is an issue we’re tracking and I’ll post back here when there’s an update.