Root Cause of Claude Code VS Code Extension Session Title Corruption Identified

✍️ OpenClawRadar📅 Published: March 16, 2026🔗 Source
Root Cause of Claude Code VS Code Extension Session Title Corruption Identified
Ad

Session Title Corruption Bug in Claude Code Extension

A persistent bug in the Claude Code VS Code extension causes session titles in Past Conversations to become corrupted—showing wrong titles, reverting to last-prompt text, or disappearing entirely. A developer has identified the architectural root cause and collected 20+ related GitHub issues that all stem from the same underlying problem.

Root Cause Analysis

The extension's session list reads titles by performing a raw string search for "customTitle" in the last 64KB of each .jsonl session file. This approach creates three specific failure modes:

  • 64KB eviction — In long sessions (common with agentic workflows), the custom-title entry gets pushed outside the 64KB tail window, causing the title to be lost.
  • Cross-session content contamination — The scanner doesn't distinguish between real custom-title JSONL entries and the string "customTitle" appearing inside tool results or conversation content, causing one session's title to appear on a completely different session.
  • Overwrite on resume — When a session is resumed and new content is appended, any custom-title from /rename gets buried. The extension then falls back to lastPrompt or picks up a stale match from tool output.
Ad

Affected Issues

The developer has collected 20+ GitHub issues related to this problem:

  • Title lost: #33165, #32150, #25090, #23610, #26240, #29194
  • Wrong title: #29801, #9668, #29342, #27751
  • Sessions invisible: #9898, #31813, #29088, #22215, #18619, #11232
  • Feature requests (workarounds): #11956, #9198, #11694, #7441

Many of these issues were auto-closed as duplicates by the bot without a fix landing. Partial fixes in v2.1.47 and v2.1.71 addressed specific symptoms but not the underlying architecture.

Proposed Solution and Workaround

The developer proposes storing titles in a separate lightweight index (e.g., title-registry.json) rather than scanning conversation content. This approach would survive session growth, be immune to content contamination, and enable cross-client sync.

For a current workaround, the developer has been running a UserPromptSubmit hook + systemd timer + persistent title registry that re-asserts the correct title on every prompt and every 2 minutes. Implementation details are available in issue #32150.

This bug affects anyone using Claude Code for task-based workflows where matching sessions to work items matters. The full root cause analysis with all 20 issues linked is available in the GitHub discussion.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also