Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Opening a project in a Cursor Dev Container on WSL2 leaks WSL Relay/vsock sessions.
Each Dev Container launch creates approximately 30–35 new Relay(/init) processes. These processes and their vsock connections remain after all Cursor windows are closed. Repeated launches accumulate hundreds of sockets in CLOSING state until WSL reports:
<3>WSL (…) ERROR: UtilAcceptVsock:273: accept4 failed 110
At that point, Cursor can no longer open Dev Containers reliably.
The same minimal Dev Container tested with VS Code does not produce sustained Relay growth, so this appears specific to Cursor’s Dev Containers integration.
Steps to Reproduce
-
Use Windows with WSL2 Ubuntu and Docker Desktop.
-
Create a minimal project containing:
.devcontainer/devcontainer.json
{
“name”: “Minimal Test”,
“image”: “ubuntu:24.04”
} -
Close all Cursor windows.
-
Record the initial Relay count in WSL:
ps -eo comm= | grep -c ‘^Relay(’
-
Record vsock states:
sudo ss -Ha --vsock |
awk ‘{n[$2]++} END {
printf “closing=%d estab=%d listen=%d\n”,
n[“CLOSING”]+0,
n[“ESTAB”]+0,
n[“LISTEN”]+0
}’ -
Open the project in Cursor using an empty profile with only the Dev Containers extension enabled.
-
Select “Reopen in Container”.
-
Wait approximately 60 seconds.
-
Close every Cursor window and wait another 60 seconds.
-
Run the same commands again.
Result: approximately 30–35 additional Relay processes remain, and the number of CLOSING vsock entries increases substantially.
Repeating the process eventually causes WSL error “UtilAcceptVsock:273: accept4 failed 110”.
Expected Behavior
Cursor should create only the WSL relay connections required for active Dev Container sessions.
When a Dev Container window is closed, its Relay processes and vsock connections should be released, and the counts should return close to their original baseline.
It should be possible to run multiple Cursor Dev Container windows without progressively exhausting WSL vsock resources.
Operating System
Windows 10/11
Version Information
Cursor:
Version: 3.12.17 (user setup)
VS Code Extension API: 1.128.0
Commit: 0fb762053c34788bb7760d5673f8a6d4c8589d50
Date: 2026-07-17T02:53:53.006Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.256
OS: Windows_NT x64 10.0.26200
WSL2/Docker:
WSL distribution: Ubuntu
Docker Desktop: 4.82.0
Docker Engine: 29.6.1
WSL version: 2.7.10.0
Kernel version: 6.18.33.2-2
WSLg version: 1.0.73.2
MSRDC version: 1.2.6676
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26200.8875
Additional Information
Observed during one exhausted session:
257 Relay processes
982 CLOSING vsock entries
617 ESTAB entries
269 LISTEN entries
1868 total vsock entries
Controlled comparison:
Cursor with minimal Dev Container:
- Approximately 30–35 persistent Relay processes added per launch
- More than 100 additional CLOSING sockets
- Relays remain after Cursor is closed
VS Code with the same minimal Dev Container:
- No sustained Relay growth
- Relay count remained at or below baseline
Normal Cursor project without reopening in a Dev Container:
- Only a few Relay processes were created
- Count stabilized
Manually killing leaked Relay processes can reclaim sockets, but this is unsafe because some Relay processes are used by Docker Desktop. During testing, killing the wrong relays broke Docker’s WSL integration and required restarting Docker Desktop.
Restarting WSL clears the problem but terminates all running development processes, so it is not a practical workaround when several development environments are active.
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor