GlassWorkbench startup fails with duplicate context key when opening previous chats (3.1.17)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Version: 3.1.17 (darwin 25.3.0, Apple Silicon/Intel — fill in yours)

Symptom: Clicking any previous chat in the history list shows an infinite
spinner with “taking a little while” and never loads. New chats work fine.

Console error on click:
ERR GlassWorkbench startup failed
Error: Illegal argument: contextkey.setConstant(k, v) invoked with
already set constant k
at fS (workbench.desktop.main.js:28:2566)
at vv_ (workbench.desktop.main.js:62:103875)
at new Qxl (workbench.desktop.main.js:42953:7431)
at vYd._createInstance (workbench.desktop.main.js:41531:2093)
at sbC.startup (workbench.desktop.main.js:45667:173574)
at Dhy.createWorkspaceForIdentifier (workbench.desktop.main.js:45710:6444)

Steps tried (none resolved the issue):

  1. Full quit + relaunch
  2. Updated to latest Cursor
  3. Launched with --disable-extensions
  4. Quarantined workspaceStorage
  5. Swapped in state.vscdb.backup
  6. Cleared glass/cursor.editorPanelVisibility.agent/* and
    cursor/glass.startupDefaultStateRecentChatCache from state.vscdb

DB shows 1,698 agent transcripts intact under cursorDiskKV (agentKv:blob:*).
The bug appears to be a code-level issue in workbench instantiation,
not state corruption.

Steps to Reproduce

Open Cursor IDE
Select previous chat
Actual result - infinite spinner
Expected result - chat loads with previous content

Operating System

MacOS

Version Information

Version: 3.1.17 (macOS Tahoe Version 26.3.1)

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @Richard_Geier!

Thanks for the report. This should be fixed in Cursor 3.2, which is pretty imminent. Once it’s released, please try again!