Remote Control sessions become unresponsive after ~1 hour
Description
Remote Control sessions (claude remote-control --name "R20" --verbose) become unresponsive after approximately 1 hour of use. The session appears connected in the Claude mobile app (blue bubble visible), but sending messages gets no response. The process is still running on the host machine and heartbeats continue in the log.
Environment
- Claude Code v2.1.86
- macOS Darwin 24.6.0 (Mac Mini, Apple Silicon)
- Claude Team plan
- Running inside tmux for persistence
- Started with:
claude remote-control --name "R20" --verbose
Steps to Reproduce
- Start a remote-control session:
claude remote-control --name "R20" --verbose - Connect from the Claude iOS app
- Work normally for 30-60 minutes
- Session becomes unresponsive — messages sent from the app get no response
- Waiting 10-30 seconds and retrying does not recover
- The process is still running (heartbeats continue in verbose log)
- Only fix is killing the process and restarting
Log Evidence
The verbose debug log shows SSE stream errors every hour:
2026-03-28T21:48:11.271Z [ERROR] SSETransport: Stream read error: terminated
2026-03-28T21:48:11.273Z [DEBUG] SSETransport: Stream ended, reconnecting
2026-03-28T21:48:11.274Z [DEBUG] SSETransport: Reconnecting in 776ms (attempt 1, 0s elapsed)
2026-03-28T22:48:12.079Z [ERROR] SSETransport: Stream read error: terminated
2026-03-28T22:48:12.080Z [DEBUG] SSETransport: Stream ended, reconnecting
2026-03-28T23:48:13.286Z [ERROR] SSETransport: Stream read error: terminated
2026-03-28T23:48:13.287Z [DEBUG] SSETransport: Stream ended, reconnecting
Between these errors, heartbeats continue normally every 20 seconds:
2026-03-29T00:25:55.178Z [DEBUG] CCRClient: Heartbeat sent
The reconnect claims to succeed but the app-side connection is dead.
Expected Behavior
Remote Control sessions should remain responsive indefinitely, or automatically recover after SSE stream reconnects so the mobile app can continue sending messages.
Actual Behavior
After an SSE stream error + reconnect cycle, the server-side process appears healthy (heartbeats continue) but the mobile app can no longer communicate with it. The session is effectively dead even though the process is running.
Workaround
Kill and restart the remote-control process. This requires SSH access to the host machine (not possible from the mobile app alone).
Additional Context
This is blocking a use case where a senior developer needs reliable mobile access to Claude Code for after-hours code reviews and incident response. The session needs to stay alive 24/7 on a Mac Mini.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗