Live Activity Push updates throttling with frequent updates

We are updating a Live Activity via push notifications quite frequently. As the documentation suggests, we are using NSSupportsLiveActivitiesFrequentUpdates for this case. We are sending all updates with apns-priority: 10.

Is it still possible that iOS throttles push-updates with this setting enabled? For example we sent updates to APNS in this frequence:

2023-06-09T09:21:22.492224Z
2023-06-09T09:22:03.415876Z
2023-06-09T09:22:05.643268Z
2023-06-09T09:22:08.567353Z
2023-06-09T09:22:11.988442Z
2023-06-09T09:22:17.983494Z
2023-06-09T09:22:28.400757Z
2023-06-09T09:22:44.185622Z
2023-06-09T09:23:06.633058Z
2023-06-09T09:23:23.560052Z
2023-06-09T09:23:31.863625Z
2023-06-09T09:23:37.18351Z 
2023-06-09T09:23:44.086319Z
2023-06-09T09:23:49.40655Z 
2023-06-09T09:24:08.034848Z
2023-06-09T09:24:18.614194Z
2023-06-09T09:24:20.176428Z
2023-06-09T09:24:25.384654Z
2023-06-09T09:25:03.103147Z
2023-06-09T09:25:15.433726Z
2023-06-09T09:25:21.171693Z
2023-06-09T09:25:23.262028Z
2023-06-09T09:25:28.241116Z
2023-06-09T09:25:30.19816Z 
2023-06-09T09:25:32.440543Z
2023-06-09T09:25:42.381815Z
2023-06-09T09:25:50.581656Z
2023-06-09T09:25:55.659846Z
2023-06-09T09:26:15.042667Z
2023-06-09T09:26:26.924626Z
2023-06-09T09:26:28.608762Z
2023-06-09T09:26:32.012874Z
2023-06-09T09:26:39.111211Z
2023-06-09T09:26:40.415326Z
2023-06-09T09:26:51.142985Z
2023-06-09T09:26:54.364073Z
2023-06-09T09:27:04.225692Z
2023-06-09T09:27:30.80347Z 
2023-06-09T09:27:33.560981Z
2023-06-09T09:27:42.334313Z
2023-06-09T09:27:43.834646Z

All of those were sent successfully, but at some point the activity stopped updating. The activity continued for several hours after, but was never updated again.

What I checked so far:

  • From device logs we can see that there was no updated push-token
  • The sent content-state is correct

From these observations and considering the high-frequent updates, I suspect that there is still some throttling happening here.

Can anyone elaborate on this?

Thanks in advance.

Answered by Engineer in 788688022

When testing you will want to enable frequent updates otherwise you run into situations like this much sooner.

To debug:

  1. Plug the devices that aren’t showing the activities in to your computer and monitor with Console.app.
  2. Look for logs relating to your processes (target names), apnd (the apns daemon) and the topic you are using for push.
  3. Filter by Budget and if you see : priority(0), budget(0) or running-not-visible, the system has decided to not show your activity.

Some reasons why this may occur:

  1. low battery mode
  2. bad data in the push(es)
  3. too many pushes in a short period of time

The only way to remedy this (because you cannot manually do this) is to wait for the system to add budget which can take up to 24 hours.

I will comment on this, not with any solution but hopefully it helps.

There is an APNS "budget" that they talk about in this doc: https://developer.apple.com/documentation/activitykit/updating-live-activities-with-activitykit-push-notifications#

There is quite a bit of information which we have utilized with limited success (because it is so difficult to test).

Primarily using more priority 5 pushes, and setting the frequent live activity updates flag in my Info.plist.

Good luck and let me know what works for you!

When testing you will want to enable frequent updates otherwise you run into situations like this much sooner.

To debug:

  1. Plug the devices that aren’t showing the activities in to your computer and monitor with Console.app.
  2. Look for logs relating to your processes (target names), apnd (the apns daemon) and the topic you are using for push.
  3. Filter by Budget and if you see : priority(0), budget(0) or running-not-visible, the system has decided to not show your activity.

Some reasons why this may occur:

  1. low battery mode
  2. bad data in the push(es)
  3. too many pushes in a short period of time

The only way to remedy this (because you cannot manually do this) is to wait for the system to add budget which can take up to 24 hours.

Live Activity Push updates throttling with frequent updates
 
 
Q