Can FamilyControls ApplicationToken or CategoryToken expire? If yes, how to detect and handle it?

How to programmatically check if ApplicationToken or ActivityCategoryToken is expired in FamilyActivityPicker?

I'm building a Screen Time-based parental control app using FamilyControls and ManagedSettings. We use FamilyActivityPicker to allow the user to select apps and categories to restrict, and we apply the shield using:

store.shield.applications = .specific(selection.applicationTokens) store.shield.applicationCategories = .specific(selection.categoryTokens)

Sometimes, we observe that the shield silently fails to apply — no error is thrown, but the restrictions aren't enforced. I suspect this may be due to expired or invalid tokens, possibly if the app was removed or the selection became stale.

My Questions:

  1. Can ApplicationToken or ActivityCategoryToken expire or become invalid over time?
  2. If yes, is there a supported or recommended way to detect whether a token is still valid before applying it to the shield?
  3. Is comparing the current shield values (store.shield.applications and store.shield.applicationCategories) after applying them a reliable validation method?
  4. What's the best practice to handle expired tokens (e.g. re-prompt the FamilyActivityPicker, or show a fallback)?
  5. What Is the Expiration Duration of Tokens from FamilyActivityPicker?

Any guidance or insight from the Screen Time/FamilyControls team would be greatly appreciated! Thank you!

Hey Jothilakshmi!

We are observing a similar issue since iOS 17.

Unfortunately, nobody at Apple seems to care, this issue is still unresolved in the latest iOS 26 beta 2.

It is unclear if there is actually still somebody from Apple working on this.

See these forum posts for reference:

Can FamilyControls ApplicationToken or CategoryToken expire? If yes, how to detect and handle it?
 
 
Q