Remote-control: phone-app approval dismisses popup but never reaches local process
Resolved 💬 2 comments Opened May 26, 2026 by sscheidt77 Closed Jun 27, 2026
Summary
With claude --remote-control running locally, approving a permission prompt from the Claude phone app dismisses the popup on the phone but the approval never reaches the local Claude process. The terminal stays parked waiting for input. Terminal-side input still works; phone-side input is dropped.
Environment
- Claude Code: 2.1.150
- OS: Ubuntu 24.04.4 LTS (kernel 6.11.0-26-generic)
- Session shell: tmux over SSH
- Launched with:
claude --remote-control
Repro
- Start a local session:
claude --remote-control. - Open the same session on the Claude mobile app.
- In the terminal, trigger a tool call that requires permission (e.g. a
BashorReadoutside the cwd). - Permission prompt appears in both the terminal and the phone app.
- On the phone, tap Approve.
Expected
Bash/Read executes and returns its result.
Actual
- Phone: popup dismisses, but the command stays shown as pending with the spinner indefinitely.
- Terminal: prompt remains; the local process never receives the approval.
- The only way to unstick: respond in the terminal. If the terminal-side response is "deny" (with a note), the tool result delivered to the model is
[Tool result missing due to internal error]rather than a normal deny message.
Direction of the bridge
- Outbound (local to cloud to phone): works. Phone receives prompts and conversation relay.
- Inbound (phone tap to cloud to local): broken for permission decisions specifically. Conversation messages typed on the phone do arrive locally; only permission-decision events fail.
IDs from one repro
- sessionId:
f106dbcc-8476-43c1-99aa-a6aad7c6b959 - bridgeSessionId:
session_01LR8DqJS9sCRJcdizz5mfU1 - pid: 3607120
- Process had 9+ ESTABLISHED HTTPS connections to claude.ai infrastructure at the time, so the channel itself was up.
Workaround
Approve in the terminal. Approving from the phone is unreliable.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗