Deleted chat entries permanently resurrect after restart — root cause in stale panel state + backup file

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Summary

Deleting a chat from the sidebar appears to work momentarily, but the chat reappears every time Cursor is restarted. The deletion never sticks.

Root Cause (confirmed by database inspection)

The delete operation removes the composer from allComposers in composer.composerHeaders (global state.vscdb), but it leaves behind stale references in two additional locations that Cursor reads on startup and uses to reconstruct the sidebar:

workbench.panel.composerChatViewPane. entries in the global state.vscdb — these store per-window panel state and still reference the deleted composer’s view ID (workbench.panel.aichat.view.). On next launch, Cursor sees these references and recreates the header entry.

workbench.panel.composerChatViewPane. entries in workspace-specific state.vscdb — located under %APPDATA%\Cursor\User\workspaceStorage<workspaceId>\state.vscdb. These are entirely separate from the global DB and are not cleaned at all on delete.

state.vscdb.backup files — Cursor maintains a .backup alongside both the global and each workspace state.vscdb. If the main DB is cleaned by any external means, Cursor restores from the backup on next startup, undoing the fix.

To Reproduce

Open any project in Cursor with more than one chat in the sidebar
Delete any chat via the sidebar UI
Fully close Cursor (not just the window)
Reopen Cursor → deleted chat reappears
Expected Behavior

Deleting a chat should atomically remove:

The allComposers header entry (global DB)
The corresponding composerData: key (global DB cursorDiskKV)
All composerChatViewPane.* panel references in the global DB
All composerChatViewPane.* panel references in every workspace DB
Both .backup files should be updated to match
Workaround

A Python cleanup script that handles all four locations (including .backup overwrite) permanently fixes the issue. Happy to share if useful.

Environment

Windows 10 (26100)
Cursor (latest as of April 2026)

Steps to Reproduce

Delete agent chat. As soon as a new agent chat is created or an agent responds to another chat, the deleted chat comes back.

Expected Behavior

Delete means “be gone” not “come back anytime”

Operating System

Windows 10/11

Version Information

Version: 3.0.12 (user setup)
VSCode Version: 1.105.1
Commit: a80ff7dfcaa45d7750f6e30be457261379c29b00
Date: 2026-04-04T00:13:18.452Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.26100

Does this stop you from using Cursor

No - Cursor works, but with this issue

This is a known issue. Version 3.0.9 included a fix for zombie draft chats, but it only covers draft (unsent) chats. Completed chats with history still have the resurrection problem you described. Multiple other users have confirmed this on 3.0.9 and 3.0.12: Thread 1, Thread 2.

Your root cause analysis from the database inspection is detailed and helpful. The team is aware of the issue, and your report adds useful technical context for the fix.

No workaround is needed on your end beyond the Python script you already wrote. A proper fix that covers all chat types (not just drafts) is being tracked internally. Thanks for flagging it!

Hey @Erol_Karazincir,
The deleted chats resurrection issue has been addressed and the fix should be available on the nightly release channel. If you’d like to try it out before it hits stable: open Cursor Settings > About and switch the Release Track to Nightly, then restart Cursor. Let me know if that resolves it!

I have been using the Agents Window exclusively so if I do go back to the Editor window, I will check it out. Thank you for resolving this.