I am using ActivityKit push-to-start Live Activities on iOS 17.2 and later.
In a small number of user reports, the app is never able to obtain Activity<LiveActivityAttributes>.pushToStartToken.
The flow is:
Task {
if let token = Activity<LiveActivityAttributes>.pushToStartToken {
// cache and upload token
} else {
// logged: current push-to-start token is nil
}
for await token in Activity<LiveActivityAttributes>.pushToStartTokenUpdates {
// cache and upload token
}
}
This task is started when the app launches.
For the affected users:
Activity<LiveActivityAttributes>.pushToStartToken returns nil at app launch.
Activity<LiveActivityAttributes>.pushToStartTokenUpdates never emits any value.
After waiting for a while, reading Activity<LiveActivityAttributes>.pushToStartToken again still returns nil.
When an existing Live Activity ends or expires, the app retries and reads Activity<LiveActivityAttributes>.pushToStartToken again, but it is still nil.
Example log from the retry after the Live Activity ended:
[Live Activity][retryDisplayCreationAfterLiveActivityEnded] Failed to read PushToStart token. local entity is nil: true
In this case, the local entity is empty because no push-to-start token was ever received from ActivityKit. This is not about the per-activity activity.pushToken; the issue is specifically with the app-level Activity<Attributes>.pushToStartToken.
Because the push-to-start token remains empty, our server cannot send a push-to-start request for that user.
I have seen a previous forum response mentioning a timing issue before iOS 26, but this affected case is on iOS 26.5, so I am not sure whether this is the same issue or a different condition.
Questions:
Under what conditions can Activity<Attributes>.pushToStartToken remain nil indefinitely?
Is pushToStartTokenUpdates expected to emit the current token after app launch, or only future token changes?
If the initial pushToStartToken read returns nil, what is the recommended retry strategy on iOS 26.5?
Does Live Activities authorization, notification permission, APNs registration state, app install source, or device state affect generation of the push-to-start token?
What logs or sysdiagnose information would be useful to confirm whether this is an ActivityKit issue?
Environment:
iOS version: 26.5
Device model: iPhone 17
App install source: TestFlight
Xcode version: 26.3
ActivityKit usage: push-to-start Live Activity
Any guidance on whether this is expected behavior, a known issue, or something we should file through Feedback Assistant would be appreciated.
1
0
64