Recommended approach for updating a push-to-start Live Activity when the app is force-quit?

I create a Live Activity remotely via push-to-start, then use its per-activity token (Activity.pushTokenUpdates) so my server can send update/end pushes.

To make sure I'm not missing tokens, I observe Activity.activityUpdates and prime from the Activity.activities snapshot at launch and on sceneWillEnterForeground, then subscribe each activity's pushTokenUpdates and POST the token to my server. This works reliably while the app is running or backgrounded/suspended — the system wakes it and I capture the token.

The problem is the user force-quit case (swiped from the App Switcher, never reopened):

  • Push-to-start still creates the Live Activity and it renders correctly on the Lock Screen.
  • But pushTokenUpdates never fires, so my server never receives the per-activity token and can't update or end that activity.
  • A backgrounded (not force-quit) app, as a control, captures the token every time.

So it seems specific to user-termination rather than all "not running" states. I understand force-quit apps generally aren't granted background runtime — I'm trying to confirm whether that applies here and what the right pattern is.

What's the recommended approach? Specifically:

  1. Is there any supported way to get the per-activity token to my server while the app stays force-quit — e.g. from the widget extension (does it

have any access to Activity.pushToken, or only ActivityViewContext?) or a Notification Service Extension? 2. If not, is setting stale-date on the start push the intended way to let the card expire gracefully when it can never be ended via push? 3. Is there a better pattern for keeping a push-started Live Activity correct when the app is never relaunched?

Recommended approach for updating a push-to-start Live Activity when the app is force-quit?
 
 
Q