Why are Expo push notifications sometimes delayed but almost never in popular apps?

Managed SDK 39.0 Standalone

I’ve noticed that many times it can take 10-30 min to receive notifications sent through Expo’s push notification service. Reading the FAQ:

What delivery guarantees are there for push notifications? Expo makes a best effort to deliver notifications to the push notification services operated by Apple and Google. Expo’s infrastructure is designed for at-least-once delivery to the underlying push notification services; it is more likely for a notification to be delivered to Apple or Google more than once rather than not at all, though both are uncommon but possible.

After a notification has been handed off to an underlying push notification service, Expo creates a “push receipt” that records whether the handoff was successful; a push receipt denotes whether the underlying push notification service received the notification.

Finally, the push notification services from Apple, Google, etc… make a best effort to deliver the notification to the device according to their own policies.

A few questions not answered here:

How long does it typically sent for the notification to make it to Apple/Google’s servers. Is it instantaneous when we make the request?

Why is that the push notifications can be delayed getting to our app but in IG, Facebook, Snapchat, Whatsapp, Viber, etc… the push notifications never seem to be missed and come in almost instantly when the messages are sent and, if delayed, we are talking a few seconds max, not 30 minutes?

I’m trying to understand if there is a tradeoff to using Expo push notifications as I sit here waiting for push notifications to “potentially” be delivered so I can diagnose issues. I’m wondering if this is normal bc doesn’t seem it should be so “hit or miss”.

1 Like

I haven’t seen any delay in push notifications using Expo’s push service myself, and haven’t received reports of that behavior from apps that use Expo’s push notification service at a non-trivial scale, so I’d be interested to see if we can reproduce these 10-30 minute delays you’re seeing :thinking: OneSignal documents a few possible reason for push notification delays here, probably worth a read-through

How long does it typically sent for the notification to make it to Apple/Google’s servers. Is it instantaneous when we make the request?

I don’t have exact numbers right now, but a few seconds maximum, usually less. But then for Apple or Google to finish the request from there, we can’t say

I’m trying to understand if there is a tradeoff to using Expo push notifications

The tradeoff is just that you will have finer-grained control over your push servers if you undertake the complexity of communicating with APNs and FCM directly, rather than using Expo’s push service (which is doable in the managed workflow and bare workflow)

Thanks @charliecruzan -

I’m trying to debug a push notification issue on Android, and it seems like Google might be throttling how many notifications can be send to a specific user in a certain time period. I haven’t heard of such a thing…but I have two apps on the same phone both using Expo tokens.

I run a sample push notification from https://expo.io/notifications to both and one of them will get all of them and the other not at all until after maybe 10 minutes it will start receiving again.

There is some other logic at the Google side marking as spam? or delaying the messages based on some criteria, I’m not sure entirely…