Desktop (Windows): remote SSH session loses UI message history after reboot
Bug Report: Remote SSH sessions lose UI message history after Windows client reboot
Summary
When using Claude Desktop (Windows) with a remote workspace over SSH, the conversation UI history disappears after rebooting Windows, even though:
- The underlying session JSONL on the remote host is intact and complete
- The ccd-cli subprocess is respawned with
--resume <UUID>and successfully loads the context (Claude "remembers" prior conversation when prompted)
The issue is UI-only: message history is not re-rendered after client restart. This does not occur when using a local (non-SSH) workspace.
Environment
Windows client
- Claude Desktop (Windows) — latest version at time of report
- Workspace: Remote SSH, mapped to a folder on a Synology NAS
NAS (remote host)
- Synology DSM, Linux 4.4.302+ (x86_64)
- Remote binaries installed at
~/.claude/remote/: server—claude-ssh cee98937dc257e6af64e712d71dbe4497eb82452(built 2026-04-14T16:53:35Z)ccd-cli/2.1.111—2.1.111 (Claude Code)- Communication: Unix socket
~/.claude/remote/rpc.sock(JSON-RPC) - Session JSONL storage:
~/.claude/projects/<flattened-cwd>/<session-uuid>.jsonl(persisted via bind mount)
Expected behavior
After rebooting the Windows client and reconnecting to the same remote workspace, selecting a session from the sidebar should re-render the full message history in the main pane — the same behavior as local workspaces.
Actual behavior
After reboot and reconnection:
- Sidebar session list is still present (persisted on Windows).
- Selecting any remote-workspace session shows "No messages yet." in the main pane.
- Sending a new prompt to that session gets a response that clearly uses the prior context — Claude can summarize progress, recall decisions, and continue work from where it left off. This proves the underlying session state is fully intact; only the UI replay is missing.
- Behavior is consistent across multiple remote sessions. Only sessions bound to local (non-SSH) workspaces render their history correctly.
Closing the Windows app (X button / tray minimize) without rebooting does not trigger the bug. Only a full Windows reboot does.
Steps to reproduce
- Set up Claude Desktop on Windows, add a remote workspace over SSH pointing to a folder on a remote host.
- Have a meaningful multi-turn conversation in that remote session so the JSONL accumulates messages.
- Reboot Windows (do not just close the app — full OS reboot).
- Launch Claude Desktop, reconnect to the remote workspace, select the prior session from the sidebar.
- Observe: main pane shows "No messages yet." despite the JSONL on the remote host being intact.
- Send any prompt like "Summarize where we left off" — Claude responds correctly using prior context.
Evidence from the remote server log
Excerpt from ~/.claude/remote/remote-server.log on the NAS:
2026/04/20 07:23:27 [Server] New connection from: @
2026/04/20 07:23:41 [process.Manager] Process 0071cf77-... started, PID=6332, command=/var/services/homes/claude/.claude/remote/ccd-cli/2.1.111
2026/04/20 07:23:41 [process.Manager] Starting stdout streaming for process 0071cf77-...
2026/04/20 07:23:41 [process.Manager] WriteStdin called for process 0071cf77-... with 400 bytes
(initialize request)
ps shows the spawned ccd-cli has:
--output-format stream-json --verbose --input-format stream-json \
--resume <session-uuid> --include-partial-messages --replay-user-messages ...
The --replay-user-messages flag suggests some form of replay is intended, but the UI does not show any messages (user or assistant) after reconnect.
The JSONL for one affected session contains:
- 689 user messages
- 1035 assistant messages
- Other events: queue-operation, attachment, ai-title, last-prompt, system
All present, ~7.2 MB, 2052 lines total. None of this is reflected in the UI post-reboot.
Scope
| Scenario | History visible in UI |
|---|---|
| Local workspace, any restart pattern | ✅ Yes |
| Remote workspace, session switching without reboot | ✅ Yes |
| Remote workspace, close Windows app via X | ✅ Yes |
| Remote workspace, after Windows reboot | ❌ No ("No messages yet.") |
Working hypothesis
Local workspaces likely have the Desktop app read the JSONL files directly from the filesystem to re-hydrate the message list. In remote mode, the app apparently relies on live RPC events forwarded from the server, and after a fresh reconnect the server/ccd-cli respawn pathway re-establishes CLI-side context but does not push historical messages back through the RPC stream to the UI.
Impact
- Users cannot visually review prior conversation after reboot, even though the data is safe.
- Workaround: users have to manually prompt Claude to summarize prior progress every time they reboot.
- Pro Max subscribers in particular use Claude Desktop heavily across multi-day / multi-session workflows, where this gap is especially noticeable.
Suggested fix directions
- On Desktop app reconnect, have the remote
serverstream the persisted JSONL history through RPC so the UI can re-render messages, matching local-workspace behavior. - Alternatively, expose an RPC method the Desktop UI can call on session selection to request full history replay.
- As a stopgap, document this limitation so users understand context is preserved even when the UI shows "No messages yet."
Additional context
Happy to provide more log excerpts, full ps output, or test against newer ccd-cli builds if helpful. Diagnosis was done from the NAS host side and the JSONL contents are confirmed intact.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗