Live Activity updates not received on iPhone 16 Pro Max when started via ActivityKit push

Description

When starting Live Activities via ActivityKit push notifications, the “start” notification is received correctly on iPhone 16 Pro Max, but subsequent update or end push notifications are not. The same implementation on iPhone 16 Pro behaves as expected (both start and update/end notifications are delivered and processed).

Environment Property Value

  • Device (failing) iPhone 16 Pro Max
  • Device (working) iPhone 16 Pro
  • iOS Version 18.5
  • Xcode / SDK 16.2/ActivityKit / Push Notifications
  • Network Wi-Fi / Cellular (both tested)

Data Collection Method

  • Devices connected via USB.
  • Logs captured using Console.app.
  • Log filtering applied for the liveactivitiesd daemon to isolate Live Activity behavior.

Initial Triage/Observations

  • Payload format confirmed compatible; no incompatible fields.
  • APNs token remains the same across messages (no refresh).
  • Identical ActivityKit subscriptions/participants on both devices.
  • Server-side delivery is confirmed: iPhone 16 Pro receives all messages (start, update, end).
  • Only iPhone 16 Pro Max fails to receive update or end push notifications.

Log Analysis

iPhone 16 Pro (Working)

Push-to-Start successfully received:

13:45:20 - APSXPCDeliverMessageEvent: Created APSIncomingMessage
13:45:20 - Received message: eventType: start(SessionPushNotifications.IncomingMessage.EventType.StartParameters(attributesType:
  "AchToLSUpgradeAttributes", attributesData: 125 bytes, inputs: []))
13:45:20 - Created activity: 1C081AC5-01AE-4EC0-8B67-5F2A9FAE2D60

13:45:45 - APSXPCDeliverMessageEvent: Created APSIncomingMessage
13:45:45 - Received message: eventType: end(dismissDate:
  Optional(2025-07-21 21:00:44 +0000))

13:45:20 - Activity updated: 1C081AC5-01AE-4EC0-8B67-5F2A9FAE2D60
13:45:20 - Local activity did update: 1C081AC5-01AE-4EC0-8B67-5F2A9FAE2D60

iPhone 16 Pro Max (Failing)

13:56:39 - APSXPCDeliverMessageEvent: Created APSIncomingMessage
13:56:39 - Received message: eventType: start(SessionPushNotifications.IncomingMessage.EventType.StartParameters(attributesType:
  "AchToLSUpgradeAttributes", attributesData: 125 bytes, inputs: []))
13:56:39 - Created activity: E6BBF691-0C7A-4791-98D2-6F1440D9932E

**No subsequent APNs push-to-update or push-to-end messages received.**

13:56:39 - No destinations for event E6BBF691... of type start  
13:56:40 - No destinations for event E6BBF691... of type update

Questions for Apple Engineering

  1. Are there known issues with ActivityKit push notifications specifically on iPhone 16 Pro Max devices?
  2. What additional diagnostic logs (system, APNs, liveactivitiesd) would be most helpful to collect?
  3. Could device-specific power management, notification settings, or OS-level changes on Pro Max models affect Live Activity updates?
  4. Are there differences in how Live Activity push subscriptions or routing are handled on iPhone 16 Pro Max vs Pro that could lead to this issue?

Hey, I have the same issue on iOS 26. My activity will start, but nothing happens when I update it from the backend. If I start it from the app via a button, for example, and it subscribes to a channel, then I get updates. Did you find a reason for that behaviour or a solution for this example_ Thank you @PadmajaAn

When "start arrives but updates don't" on one specific device, it's almost always one of three things. Walking through them:

  1. Wrong push token for updates. The start push uses apns-push-type: liveactivity plus your app's device token. But once the activity is running, each activity has its own token delivered via Activity.pushToken (or pushTokenUpdates as an async sequence). Every update has to go to that per-activity token, not the device token, and not a stale token from a previous activity. Worth logging and diffing the token you're actually sending between 16 Pro and 16 Pro Max.

  2. stale-date already in the past. iOS silently drops updates whose stale-date is before "now" on the device. Small clock drift or a timezone mismatch is enough. Try pushing with stale-date explicitly far in the future and see if that changes anything.

  3. content-state schema mismatch. If your ContentState decoder throws on the update payload (new field, wrong type, enum case removed), the update is dropped with no user-visible signal. Start payloads tend to be more forgiving than updates.

Quickest way to know which of the three it is: install the ActivityKit logging profile from Apple's developer downloads and filter Console.app on liveactivities while pushing to the 16 Pro Max. The logs will tell you whether APNs delivered the payload and it got rejected, or it never arrived at all.

Live Activity updates not received on iPhone 16 Pro Max when started via ActivityKit push
 
 
Q