[BUG] PushNotification reports success but no Windows desktop toast appears (mobile push works; Action Center stays empty)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet (#42041 is about the standalone claude.ai desktop chat app, not the CLI's PushNotification tool; #49756 was about PushNotification returning "Remote Control inactive" — different code path)
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code (2.1.143)
What's Wrong?
Invoking the Claude Code CLI's PushNotification tool returns the success string:
Terminal notification sent. Mobile push requested.
The mobile push leg delivers correctly to my phone via Remote Control. But the desktop leg silently no-ops:
- No visible toast on desktop
- No entry in Windows Action Center (Win+N) for the notification
- No notification sound
The success string suggests the desktop notification was delivered; it never reaches the Windows notification subsystem.
What Should Happen?
When PushNotification returns the "Terminal notification sent" string, a real Windows toast should appear on the desktop (visible pop-up, Action Center entry, default notification sound), the same way Chrome / Outlook / Teams notifications do.
Steps to Reproduce
- From a Claude Code CLI session on Windows, invoke
PushNotification(e.g. via a skill or by asking Claude to ping you). - Observe tool result:
Terminal notification sent. Mobile push requested. - Phone receives the push via Remote Control — works.
- Check Windows desktop — no toast.
- Open Action Center (Win+N) — no entry from Claude Code.
- No notification sound plays.
Diagnostic Steps Already Run (isolation)
The entry point was a "no notification sound" observation while running /avi-ping. Investigation expanded:
- Audio system OK —
(New-Object Media.SoundPlayer "$env:windir\Media\Windows Notify System Generic.wav").PlaySync()plays the Windows default notification sound correctly. So the sound absence is not an audio config issue. - Windows notification subsystem OK — other apps (e.g. Google Chrome) deliver toasts to Action Center normally on this machine, with sound, no DND interference.
- DND / Focus Assist OFF.
- Direct WinRT toast call works. Running this PS 5.1 snippet produces a fully functional Windows toast (visible + Action Center entry + sound):
``powershell``
[Windows.UI.Notifications.ToastNotificationManager,Windows.UI.Notifications,ContentType=WindowsRuntime] | Out-Null
$x = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02)
$texts = $x.GetElementsByTagName("text")
$texts.Item(0).AppendChild($x.CreateTextNode("Direct Toast")) | Out-Null
$texts.Item(1).AppendChild($x.CreateTextNode("Bypasses Claude Code")) | Out-Null
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("Microsoft.Windows.Explorer").Show([Windows.UI.Notifications.ToastNotification]::new($x))
So Windows accepts toasts when called with a registered AppUserModelID.
- Relevant Claude Code settings:
agentPushNotifEnabled: trueinputNeededNotifEnabled: falseremoteControlAtStartup: true
- Flag-interaction matrix (empirical):
agentPushNotifEnabled: false→ tool returns "Push not sent — mobile push is disabled in /config" (gates both desktop and mobile).agentPushNotifEnabled: trueand terminal focused (inline call) → "Not sent — terminal has focus. Terminal + mobile suppressed."agentPushNotifEnabled: trueand terminal defocused (viaScheduleWakeup) → "Terminal notification sent. Mobile push requested." — mobile push delivered; desktop toast still silently missing.
- Windows Settings → System → Notifications: "Allow notifications" + "Play sounds with notifications" both ON globally. No per-app entry exists for the toast emitter (suggesting the desktop toast is never actually registering an AppUserModelID with the OS).
Error Messages/Logs
No errors. The tool returns the success string. The failure is silent — the desktop toast simply does not appear despite the tool reporting delivery.
Claude Model
N/A (tool delivery is independent of model).
Is this a regression?
Unknown.
Claude Code Version
2.1.143
Platform
Claude Code CLI
Operating System
Windows 11 Pro 25H2 (10.0.26220)
Terminal/Shell
Windows Terminal with PowerShell 7
Additional Information
Distinct from related issues:
- #42041 — about the standalone claude.ai desktop chat app, not the CLI PushNotification tool.
- #49756 — about
PushNotificationreturning "Remote Control inactive" in non-RC sessions. In our case RC is active and the tool returns a success string, but desktop delivery still fails.
Mobile push works (Remote Control plumbing is healthy). The narrow break is on the desktop-toast delivery leg specifically.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗