Desktop app (WSL): existing chat shows "No messages yet" — transcript is present in WSL but never loaded into the UI

Resolved 💬 2 comments Opened Jun 4, 2026 by ReQur Closed Jun 4, 2026

Environment

  • Claude Code: 2.1.131
  • App: Claude Code Desktop (Windows), "Code" tab, connected to a WSL2-hosted project via the remote bridge
  • WSL: Ubuntu 22.04, kernel 6.6.114.1-microsoft-standard-WSL2
  • Model shown: Opus 4.8 (1M context)
  • Stores: Windows %USERPROFILE%\.claude (session index/list) + WSL ~/.claude (transcripts)

Summary

In the Desktop app, opening a chat whose project lives in WSL renders an empty message pane
("No messages yet")
even though the conversation exists and is being recorded. This happens
after restarting the app, and reproduces even when WSL is already running and was started
before the app
. The session resumes with full context (the model behaves as if it remembers
everything), but none of the prior messages are displayed.

Steps to reproduce

  1. Start WSL2 (confirm it's running — e.g. an open WSL terminal).
  2. Launch the Claude Code Desktop app (Windows) after WSL is up.
  3. Open the "Code" tab and select an existing chat for a WSL-hosted project.

Expected: the chat's prior messages render in the pane.
Actual: the pane shows "No messages yet", while the session is otherwise live and the model
has full context. (Screenshot available: an active session reads "No messages yet" in the center.)

Evidence — this is a UI load/backfill bug, not data loss and not a startup race

  • The transcript is actively being written in WSL during the live session. The current

session's file ~/.claude/projects/<escaped-cwd>/<uuid>.jsonl grew from 24 → 59 lines (≈56 KB → ≈242 KB)
over the course of the conversation, with fresh assistant entries timestamped seconds before
the pane was observed empty. So the writer and the data are fine.

  • The empty pane reproduces with WSL already up and started before the app, which rules out a

"WSL/filesystem not warm yet" race.

  • The Windows-side %USERPROFILE%\.claude has a populated session list (so chats appear in the

sidebar), but the message bodies live only in WSL and are not pulled into the UI on connect.

  • A remote bridge runs in WSL (~/.claude/remote/server --serve + --bridge,

socket ~/.claude/remote/run/<id>/rpc.sock); the app connects through it.

Conclusion: on (re)connect, the Desktop app does not backfill/render the existing transcript
for a WSL-hosted session. The data is intact and resumable; only the UI rendering of history fails.

Impact

Every restart leaves past conversations unreadable in the UI, even though they exist on disk and
the session resumes with full context.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗