PushNotification tool returns "Remote Control inactive" but message is actually delivered (return value diverges from real state)
Preflight Checklist
- [x] I have searched existing issues — the closest match (#49756) is the inverse symptom (inactive return + no delivery), not this one (inactive return + delivery succeeds). Filing as distinct.
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code (v2.1.150)
What's Wrong?
The PushNotification tool's return value disagrees with the actual delivery state. The tool reports Mobile push not sent (Remote Control inactive), but the notification is in fact delivered to the iPhone Claude app. This is the opposite of #49756 (where the return value is also Remote Control inactive but no delivery occurs because Remote Control truly is off).
This matters because an Operator-style agent that branches on the tool's return value (e.g. "if push failed, fall back to another channel") will draw the wrong conclusion and either suppress duplicate notifications it actually sent or fire a fallback path unnecessarily.
Environment:
- Claude Code CLI:
v2.1.150 - Claude Code Desktop (Mac):
v1.8555.0 - OS: macOS Darwin 24.6.0
- Mobile: official Claude iOS app, iOS 26.5, signed in with the same claude.ai Pro account
- Remote Control: enabled (
/config→ "Enable Remote Control for all sessions" on)
Steps to Reproduce
Tested 2026-05-22 in a single live session, 3 back-to-back invocations:
| # | Timing | Tool return value | iPhone actual delivery |
|---|---|---|---|
| 1 | Immediately after claude start | Mobile push not sent (Remote Control inactive) | Delivered (banner observed on iPhone) |
| 2 | ~40 s later, user-active window still recent | Not sent — user active (21s ago, threshold 60s). Terminal + mobile suppressed. | Not delivered (expected, suppression working as documented) |
| 3 | After sleep 70 (past the 60 s user-active threshold) | Mobile push not sent (Remote Control inactive) | Delivered (banner observed on iPhone) |
The Desktop app's Remote Control panel showed active during cases 1 and 3 — the divergence is between the tool's return string and both (a) the Desktop UI's reported state and (b) the actual delivery outcome.
Expected Behavior
The tool's return value should be a reliable signal of delivery outcome. If the push was actually delivered, the return string should say so (not Remote Control inactive).
Additional Context
- Same setup also exhibits the silent-payload symptom tracked in #61751 (banner-only on iPhone, no sound/vibration on iOS 26.5) — this is a separate concern, not part of this report.
- Reproduced across 3 iPhones (12 mini / 13 / 17, all iOS 26.5, same Apple ID) for the silent-payload symptom; the return-value divergence reported here was observed on one device but with
Remote Controlpanel state directly contradicting the tool's return on every call.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗