DeviceActivityMonitor is overcounting screen time for users on iOS 17.6.1

Our app uses a 24-hour DeviceActivityMonitor repeating schedule to send users notifications for every hour of screen time they spend on their phone per day. Notifications are sent from eventDidReachThreshold callbacks at 1, 2, 3, etc, hour thresholds to keep them aware of their screen time.

We have recently received an influx of emails from our users that after updating to iOS 17.6.1 their DeviceActivityMonitor notifications are saying their screen time was much higher than what is shown in DeviceActivityReport and their device's Screen Time settings.

These users have disabled "Share Across Devices" - but I suspect the DeviceActivityMonitor is still getting screen time from their other devices even though that setting is turned off.

Has anybody else noticed this, understands what is causing this, or could recommend a fix that we can tell our users to do?

Maybe some more relevant information: all DeviceActivityEvents are defined by tracking categories, not apps or websites. Here is an example of one of the events:

DeviceActivityEvent(categories: categories, threshold: DateComponents(hour: 2, minute: 30), includesPastActivity: true)

Update: I've noticed that part of the issue is it seems to be "double counting" usage from Safari.

As stated in the previous comment, the events target only category tokens, and not specific app or website tokens. Using the website x.com on Safari for 10 minutes caused the event threshold to fire 10 minutes early - so my hunch is it is counting Safari and the website x.com separately.

However, this is likely NOT the only thing that causes the overcounting, since users experience thresholds showing much higher screen time than can be only explained by their Safari usage. But I think this info can help point toward the root cause.

Also have submitted a bug report: https://feedbackassistant.apple.com/feedback/15103784

Hey we are experiencing the same issue here !

With the exact same context, we asked our user to un-select "Share Across Devices", and they get notifications showing a lot more screen time then is even shown within the DeviceActivityReport

Two of our users have reported the exact same behavior.

When looking at their logs, I can clearly see their schedules being created with a 300 minute event threshold, but the eventDidReachThreshold callback happened after 150 minutes. Note that when this premature callback happens, it does not send a eventWillReachThreshold at all, even though the warningTime is set. This is with app usage that does not include Safari, so it's not just a browser time tracking issue.

I'll try to isolate a repro, but this is really concerning.

Another Update: for many users, turning off Screen Time completely on their other iOS devices has fixed the issue for them (while "Share Across Devices" was still always turned off). Still for some users, this has not fixed it. And for other users, they never had other iOS devices to begin with but they were still experiencing the issue. So I would assume that this issue has something to do with screen time being shared incorrectly across devices, but still can be experienced without other iOS devices sharing screen time.

Also this issue is still happening on iOS 18.

DeviceActivityMonitor is overcounting screen time for users on iOS 17.6.1
 
 
Q