Skip to content

Conversation history shows duplicate 'Warmup' titles and loads wrong conversations #9668

Closed

Description

@hrothgarious

Claude Code Bug Report: Conversation History Loading Issue

Summary

Conversation history UI displays duplicate "Warmup" titles for multiple distinct conversations, and selecting a specific conversation loads the wrong conversation content.

Environment

  • OS: Linux (WSL2) - Linux 6.6.87.2-microsoft-standard-WSL2
  • Claude Code Version: 2.0.17 (from ~/.vscode-server/extensions/anthropic.claude-code-2.0.17)
  • VSCode: Remote (WSL)
  • Working Directory: /home/hrothgarious/bke
  • Date of Issue: October 16, 2025

Expected Behavior

  1. Each conversation in the history list should display a unique, descriptive title or first message
  2. Selecting a conversation from the history should load that specific conversation
  3. Different conversations should be distinguishable in the UI

Actual Behavior

  1. Multiple distinct conversations all show "Warmup" as the title in the conversation history list
  2. Selecting a specific conversation loads different/wrong conversation content
  3. User cannot distinguish between conversations or reliably resume a previous conversation

Evidence from Filesystem

Conversation files are stored in ~/.claude/projects/-home-hrothgarious-bke/ as JSONL files.

Actual Conversations from Today (Oct 16):

1. File: c7bc33e6-dd71-409e-9a42-c45b27c6789f.jsonl

  • Size: 250KB
  • Messages: 69
  • Last Modified: 17:23
  • Actual First Message: "@medial_axis/curve_descriptor.py"
  • Topic: Curve analysis and splitting work
  • Shows in UI as: "Warmup" (incorrect)

2. File: 0d0d6579-39e9-4511-a347-9b3bb2319bb8.jsonl

  • Size: 128KB
  • Messages: 87
  • Last Modified: 17:03
  • Topic: Grasshopper MCP forking and development
  • Shows in UI as: "Warmup" (incorrect)

3. File: 7cfe8332-8326-4c3c-aa76-fcf2b755eaf0.jsonl

  • Size: 295KB
  • Messages: 210
  • Last Modified: 17:38 (current/ongoing)
  • Topic: GitHub MCP server installation discussion
  • Shows in UI as: "Warmup" (incorrect)

JSONL Structure

First line of each conversation file:

{
  "parentUuid": null,
  "isSidechain": true,
  "userType": "external",
  "cwd": "/home/hrothgarious/bke",
  "sessionId": "7cfe8332-8326-4c3c-aa76-fcf2b755eaf0",
  "version": "2.0.17",
  "gitBranch": "",
  "type": "user",
  "message": {
    "role": "user",
    "content": "Warmup"
  },
  "uuid": "4aeee286-9ecf-48e1-803a-0c7689c2a31e",
  "timestamp": "2025-10-16T14:00:03.919Z"
}

Root Cause Analysis

The issue appears to be that:

  1. The conversation history UI is using the FIRST user message ("Warmup") as the conversation title
  2. Many users type "Warmup" as their first message to initialize the session
  3. The UI should either:
    • Skip "Warmup" messages when determining conversation titles
    • Use the second user message or a summary of the conversation
    • Use timestamps or other metadata to disambiguate

Impact

  • Severity: High - Users lose access to their previous work
  • Frequency: Reproducible - Affects all conversations that start with "Warmup"
  • Data Loss: No actual data loss (files intact), but data is effectively inaccessible through the UI
  • Workaround: Access conversation JSONL files directly from filesystem (requires technical knowledge)

Steps to Reproduce

  1. Start multiple conversation sessions
  2. Begin each session with the message "Warmup"
  3. Have substantive conversations with different topics
  4. Close and reopen VSCode/Claude Code
  5. Attempt to select a specific previous conversation from the history
  6. Observe that:
    • All conversations show "Warmup" as title
    • Selecting a conversation may load wrong content

Suggested Fixes

  1. Short-term: Skip common initialization messages ("Warmup", "Hello", etc.) when generating conversation titles
  2. Medium-term: Use AI to generate descriptive titles from the first few substantial messages
  3. Long-term:
    • Add explicit conversation naming/titling feature
    • Show timestamp + first non-trivial message
    • Show file tree or code files discussed as subtitle/metadata

Additional Context

User reported:

"I recall I had two relatively long conversations today"
"I tried all conversation from today and I cannot find the one"
"when I select the right one the same warm up conversation comes along and this is wrong"

The user was unable to resume their work through the UI and required filesystem-level investigation to identify the correct conversation files.

Related Files

  • Conversation storage: ~/.claude/projects/-home-hrothgarious-bke/*.jsonl
  • Extension location: ~/.vscode-server/extensions/anthropic.claude-code-2.0.17

Contact

Issue can be reproduced in the environment described above. Conversation JSONL files available for inspection if needed for debugging.

Activity

  1. bluelight773 commented on Oct 16, 2025

    @bluelight773

    I'd submitted a duplicate here. I can add that:

    • The issue occurs with the extension 2.0.19 as well
    • The issue occurs on Windows as well
    • The issue occurs whether the Haiku model is 3.5 or 4.5
    • When I launch the CLI that is bundled with the extension, the issue doesn't appear (or at least titles that are NOT "Warmup" show up for the conversations). Thus, perhaps the issue is specific to the extension and doesn't even apply to the CLI that is bundled with the extension.
    • I think the issue occurred for me without me using "Warmup" as the prompt, but that prompt somehow ended up replacing the prompts that I did use (at least for one-prompt conversations).
  2. sorryhyun commented on Oct 17, 2025

    @sorryhyun

    I have this issue too and imo I think some kind of agent setting is being overriden when haiku model got triggered. This also happens when I use agent sdk with fork_session=true, resume={session_id}

  3. FutureExcited commented on Oct 17, 2025

    @FutureExcited

    It's not that users start conversations with "Warmup"

    It looks like Claude Code itself started sending a "Warmup" message from user side. Which in turn triggers assistant response of the sorts of "Hi, I'm Claude Code, ready to work on your project ..."

    started happening on the day of haiku 4.5 release

  4. QFrankQ commented on Oct 17, 2025

    @QFrankQ

    My conversation history has been flooded by sessions named "Warmup" as well

  5. FredipusRex commented on Oct 17, 2025

    @FredipusRex

    This is happening for me as well. VSCode Plugin v2.0.21

    Numerous conversations all starting with "Warmup" and then a confused Claude trying to figure out what you want to do. Completely wiped out a bunch of conversations.

  6. arturogarciavw commented on Oct 17, 2025

    @arturogarciavw

    Same problem here, I'm building a script to remove this files until they fixed.

  7. allfadersup commented on Oct 19, 2025

    @allfadersup

    Same issue on macOS

    Environment:

    macOS (Darwin 24.4.0)
    Claude Agent SDK: 2.0.19, 2.0.21, 2.0.22 (all affected)
    Last working version: 2.0.13 (October 16, 2025)
    First broken session: October 17, 2025 @ 3:16 PM (SDK 2.0.19)

  8. Zhaoren1998 commented on Oct 20, 2025

    @Zhaoren1998

    我也遇到了,这个影响很大

  9. eliasg52 commented on Oct 20, 2025

    @eliasg52

    Same issue here. All my past conversations were deleted

  10. MikhailRatner commented on Oct 20, 2025

    @MikhailRatner

    Same here! MacOS.
    First broken session: October 20, 2025
    I saw the session, closed VS Code and opened another file and wanted to continue with the session and suddenly saw "Warmup" in all!

  11. 11 remaining items

  12. BTankut commented on Oct 22, 2025

    @BTankut

    2.0.24 (Claude Code)

  13. eliasg52 commented on Oct 22, 2025

    @eliasg52

    Can you please let us know the version you're seeing this in?

    2.0.24

  14. FutureExcited commented on Oct 22, 2025

    @FutureExcited

    2.0.25 and this warmup still exists.

    raw jsonl of an example chat:

    {"type": "summary"}
    {"type": "summary"}
    {"uuid": "1", "parentUuid": null, "sessionId": "2", "timestamp": "2025-10-22T10:50:15.112Z", "type": "user", "message": {"role": "user", "content": "Warmup"}}
    {"uuid": "3", "parentUuid": "1", "sessionId": "2", "timestamp": "2025-10-22T10:50:20.158Z", "type": "assistant", "message": {"role": "assistant", "content": [{"type": "text", "text": "I'm ready to assist you with the Conare project. I've reviewed the system instructions and understand:\n\n**Key principles I'll follow:**\n- Minimal, elegant code changes\n- Nuxt 4 pre-release structure (app/ for frontend, root for backend)\n- [TRUNCATED: 1170 chars total]"}]}}
    {"type": "file-history-snapshot"}
    {"uuid": "4", "parentUuid": null, "sessionId": "2", "timestamp": "2025-10-22T10:50:30.921Z", "type": "user", "message": {"role": "user", "content": "tf"}}
    

    my first actual message was "tf"

  15. hackyon-anthropic commented on Oct 24, 2025

    @hackyon-anthropic
    Collaborator

    Found the issue, fix inbound!

  16. eliasg52 commented on Oct 24, 2025

    @eliasg52

    Found the issue, fix inbound!

    thanks!

  17. hackyon-anthropic commented on Oct 24, 2025

    @hackyon-anthropic
    Collaborator

    We just shipped a hotfix for this in v2.0.27. Apologies for the inconvenience. Let us know if you still run into it with the new update!

  18. FutureExcited commented on Oct 25, 2025

    @FutureExcited

    not sure if this fix was intended for VSCode extension only. but Claude still sends the same warmup messages

    raw jsonl of the chat in 2.0.27:

    {"type": "summary"}
    {"type": "summary"}
    {"type": "summary"}
    {"uuid": "1", "parentUuid": null, "sessionId": "2", "timestamp": "2025-10-25T08:25:52.590Z", "type": "user", "message": {"role": "user", "content": "Warmup"}}
    {"uuid": "3", "parentUuid": "1", "sessionId": "2", "timestamp": "2025-10-25T08:25:57.256Z", "type": "assistant", "message": {"role": "assistant", "content": [{"type": "text", "text": "I'm Claude Code, Anthropic's official CLI for Claude. I'm ready to help you navigate and explore this codebase efficiently.\n\n [TRUNCATED]"}]}}
    {"type": "file-history-snapshot"}
    {"uuid": "4", "parentUuid": null, "sessionId": "2", "timestamp": "2025-10-25T08:25:58.043Z", "type": "user", "message": {"role": "user", "content": "hello54321"}}
    {"uuid": "5", "parentUuid": "4", "sessionId": "2", "timestamp": "2025-10-25T08:26:01.967Z", "type": "assistant", "message": {"role": "assistant", "content": [{"type": "text", "text": "Hello! I see your test message. The vibe-rules are loading correctly (I can see \"test1234\" and \"hello54321\" in the context).\n\nHow can I help you today?"}]}}
    
    
  19. sorryhyun commented on Oct 25, 2025

    @sorryhyun

    This keeps happening. would you guys open the issue please

  20. eliasg52 commented on Oct 25, 2025

    @eliasg52

    This keeps happening. would you guys open the issue please

    same to me

  21. FutureExcited commented on Oct 27, 2025

    @FutureExcited

    @hackyon-anthropic can we get the issue re-opened please?

  22. hackyon-anthropic commented on Oct 27, 2025

    @hackyon-anthropic
    Collaborator

    Can you check that you have updated and post screenshots of your issue?

    @FutureExcited this gets sent but it shouldn't show up in your message history.

  23. allfadersup commented on Oct 28, 2025

    @allfadersup

    Double Warmup Sessions + No Summaries Generated

    Just discovered that SDK v2.0.28 is creating TWO warmup phantom sessions on every initialization, not just one:

    1. agent-{id1}.jsonl - Haiku 4.5 warmup
    2. agent-{id2}.jsonl - Sonnet 4.5 warmup

    Both created simultaneously (1ms apart) with isSidechain: true and marked with the same parent sessionId.

    Impact during development:

    • Every app restart = 2 phantom sessions
    • Every hot reload = 2 more phantom sessions
    • After a few hours of dev work = hundreds of agent-*.jsonl files cluttering the sessions directory

    Additional Impact - No Summaries:
    Sessions initiated through the SDK are no longer generating conversation summaries. This breaks the ability to quickly identify and /resume conversations when switching between Claude CLI, VSCode extension, and SDK-based applications. All sessions just show as "New Session", <ide_opened_file>, or display the warmup message instead of meaningful summaries.

    Workaround:
    Auto-delete files matching agent-*.jsonl pattern when loading sessions:

    // Filter and delete warmup phantom sessions
    for (const file of files) {
      if (file.startsWith('agent-')) {
        fs.unlinkSync(path.join(sessionsDir, file));
      }
    }

    This matches the CLI's behavior of hiding warmup messages from users, but at the filesystem level.

    Related: This appears to be related to Anthropic's fix for keeping warmup out of real conversations (from #9671), but creating separate phantom sessions causes its own problems - especially for SDK-based applications with frequent restarts during development.

  24. github-actions commented on Nov 4, 2025

    @github-actions

    This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.

  25. locked as resolved and limited conversation to collaborators on Nov 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:idebugSomething isn't workinghas reproHas detailed reproduction stepsoncallplatform:linuxIssue specifically occurs on Linux

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions