Bug Description
When launching Cursor with multiple concurrently restored window sessions containing large frontend/TypeScript codebases (such as Monorepos), the editor undergoes a severe UI freeze (completely grey/blank main editor area, non-rendering sidebar, and empty terminal panels) lasting between 40 to 90 seconds.
Telemetry logs confirm systemic eventLoop starvation across all window renderer processes simultaneously. When the main thread finally recovers, the Connect (gRPC) transport client fails to initialize, producing cascading No Connect transport provider registered errors.
System Environment
- Cursor Version: 3.4.20 (Stable)
- VS Code Engine: 1.105.1
- Host OS: macOS (Darwin arm64, Apple Silicon)
- Active Projects on Startup: 3 windows restored concurrently:
/Users/username/Documents/project/monorepo-project-a(Multi-folder workspace containingsub-package-xandsub-package-y)/Users/username/Documents/project/frontend-workspace-b/Users/username/Documents/project/frontend-workspace-c
Chronological Telemetry & Logs Evidence (Verified Facts)
We captured and analyzed the local telemetry logs under the session folder 20260601T093359 (attached as a zip). The engineering facts are detailed below:
1. Global eventLoop Starvation Gaps
All three active Electron window renderer processes recorded matching thread-freeze timestamps:
- Window 1 (
window1/renderer.log):
2026-06-01 09:35:04.165 [warning] Missing property "rpcFileLoggerFolder" in oldValue...
2026-06-01 09:36:32.179 [error] Error fetching user pricing info: No Connect transport provider registered.
[logs.zip|attachment](upload://2GAEWy2Fl6Yk0YsL77sZkFfL9bq.zip) (127.8 KB)
- Fact: The main event loop was completely suspended for 88.014 seconds (
09:35:04.165to09:36:32.179). - Window 2 (
window2/renderer.log):- Freeze Gap A:
09:35:04.162to09:35:41.149(36.987s block). - Freeze Gap B:
09:35:41.149to09:36:31.710(50.561s block).
- Freeze Gap A:
- Window 3 (
window3/renderer.log):- Freeze Gap A:
09:35:02.157to09:35:41.151(38.994s block). - Freeze Gap B:
09:35:41.151to09:36:31.711(50.560s block).
- Freeze Gap A:
Verdict: The synchronous blockage across all windows confirms a global process deadlock or absolute host CPU/IO saturation.
2. Excessive Process Topology via Extension Isolation
Cursor’s Extension Isolation dynamically spawns multiple Extension Host PIDs per window:
- Window 1 PIDs:
2577(Main),2589(retrieval),2590(always-local),2591(agent-exec) - Window 2 PIDs:
2576(Main),2592(retrieval),2593(always-local),2594(agent-exec) - Window 3 PIDs:
2578(Main),2595(retrieval),2596(always-local),2597(agent-exec)
Verdict: Simultaneously restoring 3 workspaces instantly spawns 12 separate Node.js extension host processes concurrently. This causes massive OS context-switching thrashing and CPU scheduler overload on boot.
3. Overloaded Shared Process I/O Queue
During this critical startup window, the single background Shared Process was executing a highly congested batch of I/O heavy operations:
- ZIP Decompression/Install: At
09:34:13, it was unzipping/installing massive.vsixpackages for bothopenai.chatgpt(v26.527.31454) andanthropic.claude-code(v2.1.159). - Network Updates: At
09:34:32,UpdateServicetriggered a background binary update download for the stable package. - Manifest Timeouts: Handshaking timed out at
09:34:08.722with:Error getting extensions control manifest Timeout getting extensions control. - Terminal Replay Strain: At
09:34:03.879,ptyhost.logrecords it was actively reviving 6 orphan shell sessions and replaying a buffer of 7980 characters.
4. Downstream Connect gRPC Failure
Once the main thread event loop recovered from the 88-second freeze, the Connect (gRPC) client registered transport failures:
2026-06-01 09:36:32.181 [error] No Connect transport provider registered.: Error: No Connect transport provider registered.
at OAd.transport (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:29836:109883)
The Connect transport provider registration failed asynchronously due to the prolonged eventLoop starvation.
Where does the bug appear (feature/product)?
- Cursor IDE
- Cursor CLI
- Background Agent (GitHub, Slack, Web, Linear)
- BugBot
- Somewhere else…
Describe the Bug
When restoring multiple windows concurrently on startup (specifically 3 windows containing large TypeScript Monorepos and frontend codebases), the entire editor undergoes a complete UI freeze (grey/blank main editor area, non-rendering sidebar, and empty terminal panels) lasting between 40 to 90 seconds.
Our telemetry logs confirm systemic eventLoop starvation across all window renderer processes simultaneously. When the main thread finally recovers, the Connect (gRPC) transport client fails to initialize, producing cascading No Connect transport provider registered errors due to registration callbacks timing out.
Steps to Reproduce
- Configure Cursor to restore multiple windows on startup (
"window.restoreWindows": "all"). - Open 3 separate windows containing large frontend workspaces/TypeScript Monorepos (with deep
node_modules). - (Optional to guarantee bottleneck) Trigger background extension updates/installations (such as Claude Code or ChatGPT extensions) or application updates to simulate concurrent Shared Process write operations.
- Relaunch Cursor. The editor will restore all windows simultaneously, spawning PIDs for all isolated AI extension host processes, and trigger a systemic eventLoop dead-lock for up to 90 seconds.
Expected Behavior
- Workspace windows should initialize asynchronously or stagger their process-spawning sequences.
- Shared Process background disk writes (such as ZIP extractions and application package downloads) should be queued or throttled during the initial 60 seconds of startup.
- The Electron UI rendering thread (eventLoop) should remain responsive and not be starved by background I/O operations.
Screenshots / Screen Recordings
(Please refer to/attach the screenshot showing the completely blank editor workspace with a single grey border in the middle, empty panels, and a frozen sidebar.)
Operating System
- Windows 10/11
- MacOS (Apple Silicon)
- Linux
Version Information
For Cursor IDE:
- Version: 3.4.20 (Stable)
- VSCode Version: 1.105.1
- Commit: (Can be copied from: Menu → About Cursor → Copy)
Additional Information
- Anonymized Telemetry Logs: We have fully audited and anonymized the diagnostic logs for the active session (
20260601T093359) and attached them aslogs.zip. - Key Log Findings:
window1/renderer.loglogs a mathematically verified eventLoop block of exactly 88.014 seconds (09:35:04.165to09:36:32.179).- Process Spawning: Spawns exactly 12 concurrent Node.js extension host processes (4 per window due to Extension Isolation) concurrently, resulting in massive scheduler overhead.
- Shared Process Congestion: Simultaneously executes large
.vsixZIP extraction, application update downloading, and terminal history replay for 6 orphan shells at the exact same time window.
Does this stop you from using Cursor?
- Yes - Cursor is unusable (The editor becomes completely frozen and non-responsive upon launch when restoring multiple windows).
- Sometimes - I can sometimes use Cursor
- No - Cursor works, but with this issue
