Windows Desktop SSH Remote: ccd-cli crashes with exit code 1, credentials file naming mismatch

Resolved 💬 3 comments Opened Mar 21, 2026 by mike161078-afk Closed Mar 25, 2026

Environment

  • OS: Windows 11 Home 10.0.26200
  • Claude Code Desktop: v1.1.7714 (latest)
  • Server: Ubuntu 22.04 LTS, Claude CLI v2.1.81 (latest)
  • SSH: OpenSSH_10.2p1 (Windows) → OpenSSH_9.6p1 (Ubuntu)
  • Plan: Max (mike161078@gmail.com)

Bug Description

SSH remote sessions freeze/hang indefinitely since ~48 hours ago. No server-side changes were made. The feature was working perfectly before.

Root Cause Identified

The ccd-cli binary spawned by the remote server exits immediately with exit code 1, writing exactly 93 bytes to stderr, then the desktop app hangs showing "Wrangling..." or "Synthesizing..." indefinitely.

Key finding: claude login via interactive terminal saves credentials as ~/.claude/.credentials.json (hidden file with leading dot), but ccd-cli appears to look for ~/.claude/credentials.json (without the dot). This causes authentication failure on every spawn.

Manual execution works perfectly — running ccd-cli directly from an SSH terminal with the same initialization payload produces correct responses with exit code 0.

Steps to Reproduce

  1. Fresh Ubuntu 22.04 server with Claude CLI v2.1.81 installed
  2. Run claude login on server → creates ~/.claude/.credentials.json
  3. Connect Claude Code Desktop (Windows) to server via SSH remote
  4. Session title appears, then freezes on "Wrangling..." / "Synthesizing..."

Server Logs (remote-server.log)

[process.Manager] Process started, PID=49131, command=/root/.claude/remote/ccd-cli
[process.Manager] WriteStdin: wrote 204 bytes (initialize request)
[process.Manager] WriteStdin: wrote 241 bytes (user message)
[process.Manager] Read 93 bytes from stderr
[process.Manager] stderr EOF
[process.Manager] stdout EOF
[process.Manager] Process exited with code 1

This pattern repeats identically on every connection attempt.

Workarounds Attempted (all failed)

  • Reinstalled Claude Code Desktop 3x
  • Cleared ~/.claude/remote/ directory to force fresh binary deployment
  • Re-authenticated multiple times via claude login and /login
  • Updated Claude CLI on server to latest (2.1.81)
  • Verified SSH connectivity (works perfectly from terminal)
  • Configured SSH keepalive settings
  • Killed stale remote server processes
  • Contacted support (confirmed account is fine on their end)

Expected Behavior

Desktop app should successfully spawn ccd-cli and establish a working remote session, as it did 48+ hours ago.

Additional Context

  • SSH connection from terminal works flawlessly (key-based auth, ed25519)
  • claude interactive CLI works perfectly on the server
  • The 93 bytes stderr output strongly suggests an auth/credential lookup failure
  • This may be related to a recent update changing the credentials filename convention

View original on GitHub ↗

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