Cursor spawns hundreds of processes

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor spawns hundreds of rg and git processes when compiling my codebase.

Steps to Reproduce

Launch cursor with extensions disabled, touch all files in dir.

Expected Behavior

Cursor shouldn’t spawn a process per file.

Screenshots / Screen Recordings

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.36
VSCode Version: 1.105.1
Commit: 9cd7c8b6cebcbccc1242df211dee45a4b6fe15e0
Date: 2025-11-26T03:43:48.079Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 25.1.0

Does this stop you from using Cursor

Yes - Cursor is unusable

1 Like

Hey, thanks for the report. This looks like a race condition similar to an existing MCP-related issue we’re tracking (MCP Server Race Condition Causes Infinite Process Spawning on Windows (Cursor 2.0.34)), but affecting file indexing and git operations instead.

Quick diagnostic questions:

  • Do you have any MCP servers configured in ~/.cursor/mcp.json or .cursor/mcp.json?
  • Approximately how many files are in your project?
  • Is Codebase Indexing enabled? (Cursor Settings > Indexing & Docs)

Temporary solutions:

  • Disable Codebase Indexing: Cursor Settings > Indexing & Docs (toggle off)
  • Add .cursorignore: Create .cursorignore in your project root and exclude build output directories
  • Temporarily disable Git integration: Marketplace > @builtin git > disable Git extension > Reload Cursor

I’ll escalate this to the team as it’s making Cursor unusable. The rg (ripgrep) and git process spawning suggests the file watching system is creating one process per file change instead of batching them.

Could you also share the output from Help > Toggle Developer Tools > Console when the issue occurs?

Do you have any MCP servers configured in ~/.cursor/mcp.json or .cursor/mcp.json?

Yep:

{
  "mcpServers": {
    "Postgres": {
      "command": "mcp-server-postgres",
      "args": ["$db_connection_string"]
    },
    "notion": {
      "type": "http",
      "url": "https://mcp.notion.com/mcp"
    },
    "linear": {
      "type": "http",
      "url": "https://mcp.linear.app/mcp"
    }
  }
}

Approximately how many files are in your project?

╰$ fd . --type f | wc -l
63746

### Including hidden files
╰$ fd . --type f -H | wc -l
179702

### Including hidden and ignored files
╰$ fd . --type f -H -I | wc -l
563241

Is Codebase Indexing enabled? (Cursor Settings > Indexing & Docs)

Yep, less files than what I counted with fd, but I think that’s expected:

Temporary solutions:

Cursor auto-updated this morning, and I’m no longer able to reproduce the issue on the latest Cursor version:

Version: 2.1.39
VSCode Version: 1.105.1
Commit: 60d42bed27e5775c43ec0428d8c653c49e58e260
Date: 2025-11-27T02:30:49.286Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 25.1.0

Looks like maybe y’all fixed it?

The developer console logs don’t show anything interesting either, but I’ve included them just in case. I didn’t grab the output before the update sadly.

v2.1.39 Help > Toggle Developer Tools > Console output
workbench.desktop.main.js:6995 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
    at t (workbench.desktop.main.js:6331:410245)
    at async Object.getTeamRepos (workbench.desktop.main.js:565:74406)
    at async h0o.pollRepoBlocklist (workbench.desktop.main.js:8905:1984) {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.39', service: 'aiserver.v1.DashboardService', …}
error @ workbench.desktop.main.js:6995
t @ workbench.desktop.main.js:6331
await in t
(anonymous) @ workbench.desktop.main.js:6331
Wrr @ workbench.desktop.main.js:52
s$ @ workbench.desktop.main.js:52
unary @ workbench.desktop.main.js:6331
(anonymous) @ workbench.desktop.main.js:565
pollRepoBlocklist @ workbench.desktop.main.js:8905
await in pollRepoBlocklist
(anonymous) @ workbench.desktop.main.js:8903
workbench.desktop.main.js:6995 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
    at t (workbench.desktop.main.js:6331:410245)
    at async Object.getTeamAdminSettings (workbench.desktop.main.js:565:74406)
    at async XYn.refresh (workbench.desktop.main.js:542:306860) {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.39', service: 'aiserver.v1.DashboardService', …}
error @ workbench.desktop.main.js:6995
t @ workbench.desktop.main.js:6331
await in t
(anonymous) @ workbench.desktop.main.js:6331
Wrr @ workbench.desktop.main.js:52
s$ @ workbench.desktop.main.js:52
unary @ workbench.desktop.main.js:6331
(anonymous) @ workbench.desktop.main.js:565
refresh @ workbench.desktop.main.js:542
await in refresh
(anonymous) @ workbench.desktop.main.js:542
workbench.desktop.main.js:6995 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
    at t (workbench.desktop.main.js:6331:410245)
    at async Object.getTeamAdminSettings (workbench.desktop.main.js:565:74406)
    at async LMl (workbench.desktop.main.js:588:3704)
    at async olh (workbench.desktop.main.js:588:4234) {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.39', service: 'aiserver.v1.DashboardService', …}
error @ workbench.desktop.main.js:6995
t @ workbench.desktop.main.js:6331
await in t
(anonymous) @ workbench.desktop.main.js:6331
Wrr @ workbench.desktop.main.js:52
s$ @ workbench.desktop.main.js:52
unary @ workbench.desktop.main.js:6331
(anonymous) @ workbench.desktop.main.js:565
LMl @ workbench.desktop.main.js:588
await in LMl
olh @ workbench.desktop.main.js:588
r @ workbench.desktop.main.js:588
workbench.desktop.main.js:588 Failed to fetch team admin settings: ConnectError: [invalid_argument] Error
    at t (workbench.desktop.main.js:6331:410245)
    at async Object.getTeamAdminSettings (workbench.desktop.main.js:565:74406)
    at async LMl (workbench.desktop.main.js:588:3704)
    at async olh (workbench.desktop.main.js:588:4234)
LMl @ workbench.desktop.main.js:588
await in LMl
olh @ workbench.desktop.main.js:588
r @ workbench.desktop.main.js:588
workbench.desktop.main.js:588 [AutorunSettings] Failed to fetch admin settings (network error, no cache available): {error: {…}}
olh @ workbench.desktop.main.js:588
await in olh
r @ workbench.desktop.main.js:588
workbench.desktop.main.js:6995 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
    at t (workbench.desktop.main.js:6331:410245)
    at async Object.getTeamAdminSettings (workbench.desktop.main.js:565:74406)
    at async XYn.refresh (workbench.desktop.main.js:542:306860)
    at async XYn.getLatest (workbench.desktop.main.js:542:307019)
    at async soo.setDefaultModel (workbench.desktop.main.js:6996:7001)
    at async soo.refreshDefaultModels (workbench.desktop.main.js:6996:6507)
    at async Promise.all (index 0)
    at async XZn.withSemaphore (workbench.desktop.main.js:588:11600) {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.39', service: 'aiserver.v1.DashboardService', …}
error @ workbench.desktop.main.js:6995
t @ workbench.desktop.main.js:6331
await in t
(anonymous) @ workbench.desktop.main.js:6331
Wrr @ workbench.desktop.main.js:52
s$ @ workbench.desktop.main.js:52
unary @ workbench.desktop.main.js:6331
(anonymous) @ workbench.desktop.main.js:565
refresh @ workbench.desktop.main.js:542
await in refresh
getLatest @ workbench.desktop.main.js:542
setDefaultModel @ workbench.desktop.main.js:6996
refreshDefaultModels @ workbench.desktop.main.js:6996
await in refreshDefaultModels
(anonymous) @ workbench.desktop.main.js:8989
withSemaphore @ workbench.desktop.main.js:588
await in withSemaphore
(anonymous) @ workbench.desktop.main.js:8989
workbench.desktop.main.js:6995 [background_composer] Listing background composers {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.39', limit: 100}
workbench.desktop.main.js:6995 [background_composer] Finished refreshing background composers {arch: 'arm64', platform: 'darwin', channel: 'stable', client_version: '2.1.39', uniqueComposers: 0}
workbench.desktop.main.js:6299 [Extension Host] octokit.rest.search.issuesAndPullRequests() is deprecated, see https://docs.github.com/rest/search/search#search-issues-and-pull-requests