claude-code - 💡(How to fix) Fix [BUG] [BUG] SSH-Remote ccd-cli 2.1.128 still exits with code 1 on initialize with hookCallbackIds — regression of #50698

Official PRs (…)
ON THIS PAGE

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error Messages/Logs

  • ~/.claude/remote/ccd-cli/2.1.128 exists, is executable, ran interactively without error

Root Cause

Server log shows the daemon receives the initialize control_request payload containing hooks.PreToolUse with hookCallbackIds, then exits with code 1 silently (zero stderr). Subsequent process.stdin RPC calls fail because the process is already gone.

Fix Action

Fix / Workaround

Happy to provide additional logs, run wrapper scripts to capture exact stdin payload, or test patched ccd-cli builds. This is blocking the documented "use Claude Desktop with a remote VPS" workflow on a clean reference setup.

Code Example

2026/05/08 20:21:39 [process.Manager] Process e888f082-e17d-497b-b877-24c7c287140c started, PID=5525, command=/home/<user>/.claude/remote/ccd-cli/2.1.128
2026/05/08 20:21:39 [process.Manager] drainStdin e888f082-e17d-497b-b877-24c7c287140c: 1205 bytes, preview "{\"request_id\":\"by14o5dcgvq\",\"type\":\"control_request\",\"request\":{\"subtype\":\"initialize\",\"hooks\":{\"Pre..."
2026/05/08 20:21:39 [process.Manager] Process e888f082-e17d-497b-b877-24c7c287140c exited with code 1
2026/05/08 20:21:39 [Server] RPC request: method=server.ping, id=17

Stderr from crashed process: empty (0 bytes)
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

The hookCallbackIds bug originally reported in #50698 against ccd-cli 2.1.111 is still present in 2.1.128. Fresh Hetzner VPS, Ubuntu 24.04, non-root user, passwordless sudo via /etc/sudoers.d. Desktop SSH-Remote crashes immediately on first prompt.

Server log shows the daemon receives the initialize control_request payload containing hooks.PreToolUse with hookCallbackIds, then exits with code 1 silently (zero stderr). Subsequent process.stdin RPC calls fail because the process is already gone.

Relevant log excerpt from ~/.claude/remote/remote-server.log:

[process.Manager] Process e888f082-... started, PID=5525, command=/home/<user>/.claude/remote/ccd-cli/2.1.128 [process.Manager] drainStdin e888f082-...: 1205 bytes, preview "{"request_id":"by14o5dcgvq","type":"control_request","request":{"subtype":"initialize","hooks":{"Pre..." [process.Manager] Process e888f082-... exited with code 1

Ruled out:

  • Not the first-run wizard bug (#46845) — manually ran ccd-cli interactively, completed setup, no change
  • Not the --dangerously-skip-permissions/root bug (#37434, #36739) — running as non-root user
  • Not a TTY bug (#36331) — running ccd-cli via terminal works fine, only Desktop spawn fails
  • Not a Node version issue — running on the bundled binary

Identical symptoms to #50698 but on newer ccd-cli version.

What Should Happen?

Desktop SSH session should connect and accept the first prompt without crashing. Running claude directly via SSH terminal on the same VPS works correctly with the same user.

Error Messages/Logs

2026/05/08 20:21:39 [process.Manager] Process e888f082-e17d-497b-b877-24c7c287140c started, PID=5525, command=/home/<user>/.claude/remote/ccd-cli/2.1.128
2026/05/08 20:21:39 [process.Manager] drainStdin e888f082-e17d-497b-b877-24c7c287140c: 1205 bytes, preview "{\"request_id\":\"by14o5dcgvq\",\"type\":\"control_request\",\"request\":{\"subtype\":\"initialize\",\"hooks\":{\"Pre..."
2026/05/08 20:21:39 [process.Manager] Process e888f082-e17d-497b-b877-24c7c287140c exited with code 1
2026/05/08 20:21:39 [Server] RPC request: method=server.ping, id=17

Stderr from crashed process: empty (0 bytes)

Steps to Reproduce

  1. Provision fresh Ubuntu 24.04 VPS (Hetzner CPX22)
  2. Create non-root user with passwordless sudo and SSH key auth
  3. Install Claude Code via curl -fsSL https://claude.ai/install.sh | bash
  4. Authenticate with Claude Max account via claude in terminal — confirm it works
  5. In Claude Desktop (latest), Code tab → New SSH connection → user@ip with identity file
  6. Select home folder
  7. Send any prompt (e.g. "what's in this folder?")
  8. Crash: "Claude Code process exited with code 1"
  9. Server log shows hookCallbackIds in initialize payload then immediate exit

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

No response

Claude Code Version

2.1.128 (ccd-cli on remote VPS)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Cross-references:

  • #50698 — same hookCallbackIds-on-initialize crash, originally reported on ccd-cli 2.1.111. The exit-with-code-1-after-hookCallbackIds-payload behavior is identical on 2.1.128.
  • #50188 — same Hetzner+Ubuntu+macOS Desktop combo, similar exit code 1 with empty stderr.
  • #46845 — first-run wizard crash. Verified separately by running ccd-cli interactively before the desktop attempt; not the cause here.
  • #36331, #37434, #36739 — TTY and root-permission variants. Verified not the cause: running as non-root user, claude in terminal works, only Desktop spawn fails.

Verification that the underlying VPS setup is healthy:

  • ssh -i ~/.ssh/claude_agent <user>@<ip> → connects with no password, no warnings
  • claude --version on remote → 2.1.136
  • claude on remote → fully functional, can read files, run tools
  • ~/.claude/remote/ccd-cli/2.1.128 exists, is executable, ran interactively without error

The bug is isolated to the Desktop SSH-Remote spawn path, specifically the initialize control_request payload that includes hookCallbackIds.

Happy to provide additional logs, run wrapper scripts to capture exact stdin payload, or test patched ccd-cli builds. This is blocking the documented "use Claude Desktop with a remote VPS" workflow on a clean reference setup.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING