iOS 26 regression: `DeviceActivityEvent`: `eventDidReachThreshold` called immediately (instead of waiting till threshold is reached)

Hello!

I am experiencing some strange bugs around DeviceActivityEvents:

When creating a DeviceActivityEvent we can assign a threshold and applicationTokens.

The idea is, that after the user has spent said threshold on said apps, eventDidReachThreshold is called.

includesPastActivity is set to false.

On iOS 26 however, it happens (quite reliably after updating to a new beta seed) quite often that eventDidReachThreshold is called immediately (after a couple of seconds) instead of waiting for the threshold to be met.

Is anyone else seeing similar issues on iOS 26?

Only workaround I have found is to ask users to re-grant Screen Time permissions. This only holds for about two weeks though or at most until the next iOS 26 beta update is installed.

Feedback filed under:

  • FB18061981
  • FB18927456

Yes I'm seeing the eventDidReachThreshold called immediately.

At first I thought we had reverted to how it worked before adding includesPastActivity.

I tried explicitly setting includesPastActivity=false but doesn't seem to change things.

Then I tried threshold: DateComponents(hour:22) which is way longer than any and all activity on the device for the day, but still saw interval called immediately.

Next I schedule an activity without an event. In this case, eventDidReachThreshold isn't supposed to be called at all. However, it is still called immediately upon scheduling the activity.

Also, for me, cycling (turn off and re-granting) Screen Time permissions didn't fix anything.

I'm on iOS26 Public Beta 3

Also, for me, cycling (turn off and re-granting) Screen Time permissions didn't fix anything.

Thanks a lot for sharing!

I’m a bit worried that we are so late in the beta cycle and this is still not addressed.

Did you file a feedback request with sysdiagnose as well?

If yes, please share your feedback number so I can reference it in my bug report (& you can do the same, just to make sure our bug reports end up being merged which hopefully gives them a higher priority)

it is still called immediately upon scheduling the activity

That’s super interesting to know!

I am unable to reproduce it right now (usually I can only reproduce it after installing a new beta, then when I reset the permission it works again).

So I would love to know if you still see the threshold callback being called when it actually should (= a second time), or do you just get that one call right after scheduling?

Because in that case we could quite easily implement a workaround that just ignores threshold callbacks that happen right after scheduling the activity (stupid that this is necessary, but at least I can see this working quite reliably…)

Only the one call right after scheduling and for me it's consistently doing this.

Workaround... if you're trying to trigger something based on app usage, I don't see any way to do it. If you're just trying to fire a schedule, then you don't need the eventDidReachThreshold callback anyway.

Only the one call right after scheduling and for me it's consistently doing this.

That’s Bad! @Apple: Please fix this!

Just relying on the schedule is unfortunately not an option for me. I need the threshold trigger :/

I filed feedback: FB19738834

I'm on iOS26 Public Beta 3

Public beta 4 just dropped. Can you still reproduce?

iOS 26 regression: `DeviceActivityEvent`: `eventDidReachThreshold` called immediately (instead of waiting till threshold is reached)
 
 
Q