Session ID reused after deleting a transcript .jsonl, and the new session inherits a stale/wrong auto-generated title
Summary
After manually deleting an old session transcript file from ~/.claude/projects/<project>/<uuid>.jsonl, Claude Code reused the exact same session UUID for a brand-new, unrelated conversation started afterward. That new session's auto-generated title also came out wrong — matching the title of a different, currently-active sibling session instead of reflecting its own content.
This looks related to the title-bleed family of bugs (#86531, #80906, #92377, #89570, #81899) but the specific trigger — file deletion followed by UUID reuse — doesn't appear to be covered by any of those reports.
Steps to reproduce
- Have multiple Claude Code sessions active/recent in the same project directory (in our case, one titled "COD to Prepaid conversion" was the currently active/foreground session).
- Delete an old, unrelated session's transcript file directly:
rm ~/.claude/projects/<project>/<old-session-uuid>.jsonl. - Start a brand-new, unrelated conversation shortly after (in our repro: a request to use Claude in Chrome to access Outlook).
- Observe: the new conversation is assigned the exact same UUID as the just-deleted file (
<old-session-uuid>.jsonlis recreated from scratch with entirely new, unrelated content). - Observe: the new session's
custom-titleis not derived from its own content — it comes out identical to the title of a different, currently-active sibling session ("COD to Prepaid conversion"), despite the new session being about something completely unrelated (Outlook access via Claude in Chrome).
Evidence
Raw contents of the recreated file after deletion + new unrelated session:
{"type":"last-prompt","lastPrompt":"<message about using Claude in Chrome to access Outlook>","leafUuid":"...","sessionId":"<same-uuid-as-deleted-file>"}
{"type":"custom-title","customTitle":"COD to Prepaid conversion","sessionId":"<same-uuid-as-deleted-file>"}
{"type":"agent-name","agentName":"COD to Prepaid conversion","sessionId":"<same-uuid-as-deleted-file>"}
{"type":"mode","mode":"normal","sessionId":"<same-uuid-as-deleted-file>"}
{"type":"atis-latch","atis":"","sessionId":"<same-uuid-as-deleted-file>"}
{"type":"bridge-session","sessionId":"<same-uuid-as-deleted-file>","bridgeSessionId":"cse_...","lastSequenceNum":388,"ownerAccountUuid":"...","ownerOrganizationUuid":"..."}
{"type":"cost-state","sessionId":"<same-uuid-as-deleted-file>", ...}
Note the custom-title and agent-name are both "COD to Prepaid conversion" — the title of a separate, currently-open sibling session — with zero relation to the actual lastPrompt content about Outlook/Claude-in-Chrome.
Separately in the same investigation, two other pre-existing sessions (unrelated to either topic above) had their custom-title fields silently overwritten mid-transcript to the same "COD to Prepaid conversion" string, with no user action taken on those sessions at the time — consistent with the cross-session title contamination described in #86531, but worth noting here since it happened concurrently with the UUID-reuse behavior above.
Environment
- Claude Code VS Code extension version: 2.1.278 (darwin-arm64)
- Platform: macOS
Why this matters
- Session UUID reuse after deletion is surprising on its own — most users would assume deleting a transcript file simply frees that history, not that the ID becomes eligible for immediate reassignment to an unrelated future conversation.
- Combined with the title-bleed bug family, this makes session history genuinely difficult to trust: a user cannot rely on a session's title, or even its UUID, to uniquely and stably identify "this is the conversation I had about X."
- This surfaced while manually deleting a stale/superseded session transcript as routine cleanup — a reasonable, low-risk action that then produced confusing, hard-to-diagnose side effects on unrelated sessions.
Happy to provide the full (redacted) transcript files if useful for debugging.