Remote Control: ExitPlanMode prompt stays on iOS after a PermissionRequest hook approves it

Status Open
Reported on v2.1.296
Maintainer reply None cached
Activity 0 comments · opened Oct 11, 2026

What happens

A PermissionRequest hook approves ExitPlanMode. The session acts on the approval right away, but the plan prompt stays on the iOS app's Remote Control view and never goes away.

Steps to reproduce

  1. Open a session with Remote Control on iOS, in plan mode.
  2. Have a PermissionRequest hook answer ExitPlanMode with {"hookSpecificOutput": {"hookEventName": "PermissionRequest", "decision": {"behavior": "allow"}}}.
  3. Look at the phone.

Expected: the plan prompt on the phone closes, as it does when the plan is approved at the terminal.

Actual: the session goes ahead, but the phone keeps showing the plan with its Approve buttons. The transcript records all of this within the same second:

  • the tool_result "User has approved your plan…";
  • an attachment {"type": "plan_mode_exit", …};
  • the next tool call.

Reopening the chat doesn't clear the prompt. Sending the session any message does.

Why it matters: someone who taps the stale Approve may approve twice. For a permission prompt, that could run a command twice.

Related: #32493 (the same bug for a plain tool approval, closed as a duplicate of #12176) and #12176 (closed as completed). The Remote Control view still shows the prompt in 2.1.296.

Environment: Claude Code 2.1.296 on macOS; Claude iOS app with Remote Control.

View original on GitHub ↗