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

1 Like

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!

I switched to agent window. Love it. No way to delete chats so the problem is irrelevant. I just have to find my archived chats somehow. lol
Thanks for the response. I did try multiple AI coding environments and none beats Cursor. You guys rock.

Erol Karazincir

​​​​

Vice President of Information Technology

2 Likes