Inconsistent update process for Cursor IDE Windows

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

When i try to update the cursor using the “Restart to update” from “Help”, it simply refuses to update, because it’s running several node.js Javascript Runtime, that i have to manually rightclick and close, before cursor wants to restart and update.

“C:\Users\USER\AppData\Local\Programs\cursor\resources\app\resources\helpers”

Steps to Reproduce

  1. Click Help.
  2. Click “Restart to update”
  3. Open task manager.
  4. Close all node.js Javascript Runtime
  5. Cursor restarts and installs.

Expected Behavior

Clicking restart to update should force-close all related services, so the user doesn’t have to close anything.

Screenshots / Screen Recordings

Operating System

Windows 10/11

Version Information

Version: 3.23.5 (user setup)
VS Code Extension API: 1.128.0
Commit: a34aa15953a79dfe2ada63f5460efa79005dfbb0
Date: 2026-09-29T21:43:27.519Z
Layout: IDE
Build Type: Stable
Release Track: Nightly
Electron: 42.10.0
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Windows_NT x64 10.0.26200

For AI issues: which model did you use?

Auto

For AI issues: add Request ID with privacy disabled

9315206d-961b-44d1-b2c5-ea7385156a54

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @master3395, thanks for the report!

This is a known issue on Windows that we’re tracking. Some MCP servers run on the Node runtime that ships with Cursor, and they can keep running after Cursor closes. Because they run from Cursor’s install folder, the updater can’t replace those files until they’re gone.

Until it’s fixed, if Restart to Update gets stuck, you can run this in PowerShell instead of closing them one by one in Task Manager:

Get-Process node -ErrorAction SilentlyContinue | Where-Object { $_.Path -like "*\Programs\cursor\resources\app\resources\helpers\*" } | Stop-Process -Force

It only stops Cursor’s bundled Node, not any Node.js you installed yourself.

To help us confirm which server is staying behind, next time it happens could you run this first (before the cleanup) and paste the output here?

Get-CimInstance Win32_Process -Filter "Name='node.exe'" | Select-Object ProcessId, ParentProcessId, CommandLine | Format-List

If any of the command lines contain an API key or token, please blank it out before posting.

I will try on the next update :slight_smile:

It looks like extensions might be parts of the problem.

PS C:\WINDOWS\system32> Get-CimInstance Win32_Process -Filter “Name=‘node.exe’” | Select-Object ProcessId, ParentProcessId, CommandLine | Format-List

ProcessId : 33636
ParentProcessId : 33868
CommandLine : “D:\Program Files\nodejs\node.exe” “C:\Users\NAME\AppData\Roaming\npm\node_modules\npm\bin\npx-cli
.js” “-y” “mongodb-mcp-server@<3”

ProcessId : 32204
ParentProcessId : 14748
CommandLine : “node” “C:\Users\NAME\AppData\Local\npm-cache_npx\364f1bc81b0e7c67\node_modules.bin\..\mongodb-
mcp-server\dist\esm\index.js”

ProcessId : 30068
ParentProcessId : 38292
CommandLine : “D:\Program Files\nodejs\node.exe” “C:\Users\NAME\AppData\Roaming\npm\node_modules\npm\bin\npx-cli
.js” “-y” “mongodb-mcp-server@<3”

ProcessId : 3516
ParentProcessId : 34860
CommandLine : “node” “C:\Users\NAME\AppData\Local\npm-cache_npx\364f1bc81b0e7c67\node_modules.bin\..\mongodb-
mcp-server\dist\esm\index.js”

Hey @master3395, thanks for running that, it pinpoints the cause!

All four of those processes are the MongoDB MCP server that comes with the MongoDB plugin in Cursor (two copies, each with a small npx launcher). They keep running after Cursor closes, and that’s what blocks the updater from cleaning up the old install folder (the “Deleting a directory … os error 5” message). Your other MCP servers and your VS Code extensions aren’t involved.

I’ve passed these details to the team working on it.

Until it’s fixed, run this in PowerShell before clicking Restart to Update (or when you see that error, then click Retry):

Get-CimInstance Win32_Process -Filter "Name='node.exe'" | Where-Object { $_.CommandLine -like "*mongodb-mcp-server*" } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }

It only stops the MongoDB MCP processes, and Cursor starts a fresh one the next time it opens.