Web hand-off session cannot commit or push — work stranded in ephemeral container (commit-signing 400 'missing source' + no remote/gh)

Resolved 💬 1 comment Opened May 29, 2026 by kurowski Closed May 29, 2026

Summary

The desktop → web "hand off your plan to Claude on the web" flow drops the user into a remote execution environment where completed work cannot be committed or pushed, so the code is effectively stranded in an ephemeral container and appears lost. This is a serious UX flaw in the hand-off path.

Environment

  • Claude Code on the web (remote execution environment), reached via a plan hand-off from Claude Code on desktop.
  • Repo: github.com/kurowski/homie, base commit 2455110.

What happened

The web session completed a multi-file implementation, but there was no way to get the code back out:

  1. Commit signing fails on every attempt. Config: commit.gpgsign=true, gpg.format=ssh, key /home/claude/.ssh/commit_signing_key.pub. Every git commit dies with:

``
signing server returned status 400: {"error":{"message":"missing source","reason":"","type":"invalid_request_error"}}
``
Request IDs: req_011CbX72UnvFs3ysVV7khd4y, req_011CbX75byrLytpNUSWPDRZK. Not transient — failed on repeated attempts.

  1. No egress from the shell. git remote -v is empty and gh is not installed, so the agent cannot push or open a PR. Because no commit can be created, the web UI's "Create PR" affordance is also dead.

Impact

Completed work sat as uncommitted edits in an ephemeral container with no durable destination — it looked "lost" to the user. Only recoverable by manually exporting a git diff patch and applying it locally.

Likely root cause

The signing server's missing source 400 is the primary failure: it blocks every commit, which cascades into "no PR." This looks like an environment-provisioning bug in the hand-off flow (signing not wired up, and/or no remote configured).

Expected

A plan hand-off from desktop → web should land in an environment where commits can be signed and the branch can be pushed / surfaced as a PR back to the user.

🤖 Generated with Claude Code

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗