3.8 KiB
macOS Repeating Alert Tone from Mirrored iPhone Notification
Overview
On macOS, an unacknowledged iPhone notification can be mirrored to a Mac via iPhone Mirroring or Continuity and loop indefinitely — even after the alert is dismissed on the iPhone. The sound plays through the Mac's built-in speakers with no visible notification banner.
Symptoms
- Repeating alarm tone coming from Mac speakers at regular intervals
- No visible notification in Notification Center or as a banner
- Sound starts when the Mac is opened or woken
- iPhone is silent
- iPhone not connected via Bluetooth audio
Root Cause
macOS's ToneLibrary framework (TLAlertQueuePlayerController) loops iPhone alert ringtones via NotificationCenter when a mirrored notification has not been dismissed on the Mac side. The iPhone side may show the alert as acknowledged, but the Mac maintains its own notification state independently.
The sound file being looped will be an iPhone ringtone from:
/System/Library/PrivateFrameworks/ToneLibrary.framework/Resources/Ringtones/
Diagnosis
To confirm this is the cause, run:
log stream --predicate 'process == "NotificationCenter"' --style compact
Wait for the sound to fire. Look for a line like:
URL = file:///System/Library/PrivateFrameworks/ToneLibrary.framework/Resources/Ringtones/<name>.m4r
If TLAlertQueuePlayerController appears in the output alongside a .m4r ringtone URL, this is your issue.
Full Diagnostic Sequence
If the above isn't conclusive, work through these in order:
1. Broad scan:
log stream --predicate 'eventMessage contains "sound" OR eventMessage contains "alert" OR eventMessage contains "notification"' --style compact
2. CoreAudio scan (catches audio playback):
log stream --predicate 'subsystem == "com.apple.coreaudio" OR eventMessage contains "AudioSession" OR eventMessage contains "AVAudio"' --style compact
Look for NotificationCenter with contentType = 'soun' and Route = built-in speakers.
3. Confirm with NotificationCenter filter:
log stream --predicate 'process == "NotificationCenter"' --style compact
Fix
Immediate
Kill and restart NotificationCenter:
killall -9 NotificationCenter
macOS will relaunch it automatically. The looping sound will stop immediately.
Proper Dismissal
Open Notification Center on the Mac (click the clock in the menu bar) and dismiss any queued notifications from the offending app. If the source notification is still pending on the iPhone, dismiss it there as well.
Prevention
Option A — Disable sound for the app on Mac
Go to System Settings → Notifications → [App Name] and either:
- Turn off Play sound for notifications, or
- Turn off notifications entirely for the app on the Mac
The iPhone will still alert normally.
Option B — Dismiss on both devices
When a high-priority alert fires on iPhone, check both the iPhone and the Mac's Notification Center to ensure both sides are cleared.
Notes
- This behaviour can be triggered by any iPhone app whose notifications are mirrored to the Mac via Continuity or iPhone Mirroring, not just apps with alarm-style alerts.
- The Mac maintains its own notification state independently of the iPhone — dismissing on one device does not guarantee dismissal on the other.
- Apps with persistent or repeating alert styles (such as health monitors, timers, or messaging apps) are most likely to trigger this issue.
- Unrelated: Ivory (Mastodon client) may show excessive badge update calls in logs on startup — this is a known Ivory bug and not related to audio playback.
Tags
macos notifications iphone-mirroring continuity tonelibrary notificationcenter diagnostic audio