Notification coordination between iOS and watchOS is not working properly

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.

https://developer.apple.com/forums/thread/765669

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

  1. watchOS receives a notification.
  2. On watchOS, the notification is not immediately shown to the user.
  3. iOS receives a notification with the same UNNotificationRequest.identifier as in (1).
  4. The notification in (3) does not appear on either iOS or watchOS. However, the notification from (3) does appear in iOS Notification Center.
  5. Thirteen seconds after watchOS received the notification, the notification from (1) is shown to the user on watchOS.
  6. 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

  1. Same as above.
  2. Same as above.
  3. Same as above.
  4. The notification in (1) is integrated into the notification in (3).
  5. 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

I understand the coordination and the results of it as far as notification display patterns may not be exactly as you expect, but this is indeed an issue rife with endless timing problems and race conditions, starting from the time the notifications are sent (I am assuming you are using push notifications here based on you mentioning "receive") and then the resulting notification coordination and display.

The coordination efforts are evolving as various factors (including pre processing by AI) vie for the process of showing a notification.

This would be best followed up by the relevant teams via your Feedback report, and it is not something we can provide a fix for in the forums.

So, keep following up as necessary with your Feedback report by checking the status of your report.

Notification coordination between iOS and watchOS is not working properly
 
 
Q