Cursor freezes on startup due to corrupted selectedComposerIds

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor hangs indefinitely when opening a workspace. The window appears but becomes unresponsive - no UI elements load, cannot interact with anything.

Steps to Reproduce

Unknown - likely occurred during a crash while creating a new chat.

Operating System

Linux

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.3.29 (user setup)
VSCode Version: 1.105.1
Commit: 4ca9b38c6c97d4243bf0c61e51426667cb964bd0
Date: 2026-01-08T00:34:49.798Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26200

Additional Information

OS: Windows 11 + WSL2 (Ubuntu)

Root Cause Found

After investigation, discovered that composer.composerData in workspace’s state.vscdb contained corrupted entries:

"selectedComposerIds": [{"preserveFocus": false}, {"preserveFocus": false}]
"lastFocusedComposerIds": [{"preserveFocus": false}]

These objects are missing the composerId field. Cursor appears to hang while trying to load non-existent chats.

Workaround

Manually clearing these arrays in SQLite fixed the issue:

-- In %APPDATA%\Cursor\User\workspaceStorage\<hash>\state.vscdb
UPDATE ItemTable SET value = '<fixed_json>' WHERE key = 'composer.composerData';

Suggested Fix

  1. Add validation for selectedComposerIds entries on startup
  2. Skip/remove entries without valid composerId
  3. Add try-catch around chat loading to prevent complete freeze

Does this stop you from using Cursor

Yes - Cursor is unusable

To be honest, Cursor + Opus 4.5 helped me solve this problem.

If it weren’t for it, my whole workday would have been ruined.

It’s just a shame that I had to spend tokens on all this…

Hey, thanks for the report with the root cause analysis and the workaround!

I shared it with the team. The suggested validation of selectedComposerIds on load makes sense, so we can avoid a full freeze caused by corrupted data.

Glad you were able to fix it with Cursor + Opus!

1 Like