[BUG] PushNotification reports success but no Windows desktop toast appears (mobile push works; Action Center stays empty)

Resolved 💬 1 comment Opened May 18, 2026 by Avimarzan Closed Jun 17, 2026

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

  1. From a Claude Code CLI session on Windows, invoke PushNotification (e.g. via a skill or by asking Claude to ping you).
  2. Observe tool result: Terminal notification sent. Mobile push requested.
  3. Phone receives the push via Remote Control — works.
  4. Check Windows desktop — no toast.
  5. Open Action Center (Win+N) — no entry from Claude Code.
  6. No notification sound plays.

Diagnostic Steps Already Run (isolation)

The entry point was a "no notification sound" observation while running /avi-ping. Investigation expanded:

  1. 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.
  2. Windows notification subsystem OK — other apps (e.g. Google Chrome) deliver toasts to Action Center normally on this machine, with sound, no DND interference.
  3. DND / Focus Assist OFF.
  4. 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.

  1. Relevant Claude Code settings:
  • agentPushNotifEnabled: true
  • inputNeededNotifEnabled: false
  • remoteControlAtStartup: true
  1. Flag-interaction matrix (empirical):
  • agentPushNotifEnabled: false → tool returns "Push not sent — mobile push is disabled in /config" (gates both desktop and mobile).
  • agentPushNotifEnabled: true and terminal focused (inline call) → "Not sent — terminal has focus. Terminal + mobile suppressed."
  • agentPushNotifEnabled: true and terminal defocused (via ScheduleWakeup) → "Terminal notification sent. Mobile push requested." — mobile push delivered; desktop toast still silently missing.
  1. 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 PushNotification returning "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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗