Notification coordination between iOS and watchOS is not working properly
watchOS and iOS try to coordinate between phone and watch notifications.
The concept here is that if there is a main app and a companion app, they could both be sending a notification, then the notification would alert on both, which is a deviation from how notification mirroring is handled if there is an iOS app but no watch app.
The watch waits for the iOS notification to fire so they can determine if this is the same notification that needs to be deduped, displayed on one device but not the other, or separate notifications to be displayed both.
If there is no notification on the phone, the watch will timeout after 13 seconds and alert anyway.
If you have an iOS companion app, the best solution to this is to send the same notification on both devices simultaneously, and ensuring the UNNotificationRequest.identifier matches on both notifications. This will let the systems determine how to handle the notification correctly and quickly, and the notification will alert right away.
According to the above article, "when a notification arrives on watchOS alone first, it coordinates with iOS," but in reality, it doesn't work properly.
Detailed process of this phenomenon
- watchOS receives a notification.
- On watchOS, the notification is not immediately shown to the user.
- iOS receives a notification with the same UNNotificationRequest.identifier as in (1).
- The notification in (3) does not appear on either iOS or watchOS. However, the notification from (3) does appear in iOS Notification Center.
- Thirteen seconds after watchOS received the notification, the notification from (1) is shown to the user on watchOS.
- In the end, the iOS and watchOS notifications are not consolidated and each remains in its respective notification center.
Up to (3) there are no issues. Starting with (4), both iOS and watchOS exhibit a lot of odd behavior.
This phenomenon occurs with both local notifications and push notifications.
When iOS receives the notification first, there is no problem. The notification for watch received later is processed appropriately, and the watchOS notification is not additionally displayed to the user.
Expected proper process
- Same as above.
- Same as above.
- Same as above.
- The notification in (1) is integrated into the notification in (3).
- The notification in (3) is alerted to the user immediately.
2 sample projects to reproduce
Only the main code is attached.
Sample project1: local notifications
Sample project2: push notifications
This sample project is implemented using Firebase Functions and Firebase Cloud Messaging.
Tested devices and OS
This phenomenon occurred in both of the following patterns.
Pattern 1
- Xcode 26.0
- iPhone 16 (iOS 26.0)
- Apple Watch series 10 (watchOS 26.0)
Pattern 2
- Xcode 16.4
- iPhone 11 (iOS 18.6)
- Apple Watch SE 2nd gen (watchOS 11.6)
Question
Is this phenomenon a bug?
Or is my understanding or implementation incorrect?
Feedback Assistant number
FB20339772