Remote Control: stale environment stays green/online in mobile app after server exits; sessions hang at "Allocating sandbox"
Summary
A Remote Control environment created by claude remote-control remains listed in the Claude mobile app (Code tab) with a green/online status dot indefinitely after the server process has exited — surviving terminal close, disableRemoteControl: true, and even a full machine reboot. The mobile app lets the user create new sessions against this dead environment; those sessions hang forever at "Allocating sandbox" instead of failing or being rejected.
Steps to reproduce
- On macOS, run
claude remote-controlfrom a trusted project directory (first-time CLI user; authenticated via claude.ai during this flow). The environment registers and connects. - Close the terminal (server process exits).
- Set
"disableRemoteControl": truein~/.claude/settings.jsonand turn off "Enable Remote Control for all sessions". - Reboot the machine.
- Open the Claude mobile app → Code tab.
Expected
The machine/environment should show as offline (or disappear), and creating a session against it should fail fast with a clear "no server is listening" error.
Actual
- The environment still shows with a green/online dot days later with no server process running.
- Selecting it offers the directory picker and allows creating a new session.
- The session record syncs and appears in the Claude Desktop app's sidebar (with the prompt visible), but nothing ever runs: mobile shows "Allocating sandbox" indefinitely, desktop shows "running" with a spinner forever.
- There is no documented way to deregister/remove the stale environment, and
disableRemoteControl: truedoes not remove it from the mobile list.
Additional observations
When a new claude remote-control server was later started in the same directory to debug, it immediately attempted to reclaim the queued/stuck sessions and logged repeated failures before serving a fresh session:
Error: CCR v2 worker registration failed for session cse_01AVCcHXjVg5xss7jQPPtsWi: Request failed with status code 404
Error: CCR v2 worker registration failed for session cse_01UZ18pScE6zo4DzjumGYxCE: Request failed with status code 404
Error: CCR v2 worker registration failed for session cse_01HhEv1pWpZ84rjAUi4mqWWc: Request failed with status code 404
Error: CCR v2 worker registration failed for session cse_01GZQXVi3623dtn24vdJtWJu: Request failed with status code 404
Session started: "Session cse_01HVCYQZJVTv4T2PE8fxc6Yp"
Environment ID: env_015F4bhEDB2NzR9UdNTYAWVt
This UX is confusing in combination with the Claude Desktop app: because the desktop app displays the synced (but dead) session records in its sidebar, it looks like the desktop app is hosting phone-initiated sessions and failing, when in fact nothing is listening at all.
Suggested fixes
- Reflect actual liveness in the mobile app's status dot (registration ≠ listening).
- Fail session creation fast when no worker is connected to the environment, with an actionable message ("Start
claude remote-controlon <machine> to use this environment"). - Provide a way to deregister/remove a stale environment (CLI subcommand and/or claude.ai settings).
- Consider having
disableRemoteControl: truealso deregister the machine's environments.
Environment
- Claude Code: 2.1.226 (native install); server originally started on 2.1.222-era install, retested on 2.1.226
- OS: macOS (Darwin 25.5.0), Apple Silicon
- Plan: claude.ai subscription (not API key)
- Claude Desktop app 1.26832.0 also installed and running on the same machine