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