Push notifications: what is ThunderingHerdPolicy?

Does anyone know what ThunderingHerdPolicy on iOS is? I have read Thundering herd problem, which helps me roughly guess what domain this problem is in, but I still have no real understanding. There should not be many processes contending for this push notification I sent, so ThunderingHerdPolicy is not the conventional "thundering herd problem". Another interesting term in the log message was timeSinceThunderingHerdTriggerEvent. What's that.

When looking in Console.app, I found a log message printed when my push notification message was ignored/ throttled and not shown to the device/ user.

The log message shows:

{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceInUse == 1 AND timeSinceThunderingHerdTriggerEvent < 900}]}}
 ], FinalDecision: Must Not Proceed}

If I were to guess, iOS had detected a thundering herd event where many apps were competing for network or battery resource. However, timeSinceThunderingHerdTriggerEvent was exactly 900 (probably in seconds, or 15 minutes) which means the event was triggered immediately when the push notification was received. Maybe there was too much background work by my app or other apps recently, or a bug.


I asked this question on Stack Overflow too: https://stackoverflow.com/questions/68983220/ios-push-notifications-what-is-thunderingherdpolicy