I am currently using the expo server SDK to throttle my notifications, but am sending a large number of notifications at once (~3000-5000 currently). Reciepts seem to show as mostly ok, but deliverability seems to be only at about 20-30% of registered tokens.
I asked some of my users if the received, and a huge number said that when they opened the app, the got a “push notification failed” message.
Am I doing something wrong? Can I do something to improve deliverability for notification blasts?
This is what a lot of client devices are seeing when launching the app after the notification was sent. They did not get the push, but they get that error on app launch.
two days ago exp.host sometimes returned 504 bad gateway, but not really long times. i think u need check u code. sdk42, eas, no problem with push.
p.s. problem only with android, or and ios too?
Right, but expo-notifications doesn’t have code to show an error message like that when a push notification fails, so I think you need to take a look at your code, and try and see what the error message you’re getting from the APIs you’re using is
Nothing on my sever side showed any errors, in fact it showed that everything was sent OK in the receipts. I’ve looked at my client side code and there is nothing in there to show an alert when a notification fails either, so it has to be coming from somewhere else…just don’t know where.
I’m checking on iOS vs Android…it’s possible that it was affecting Android users primarily.
I’m also on SDK 42 and EAS. It works in smaller batches, but this is the first time that I sent out a push to a large group of users and it didn’t work as intended. If I send to 200-300 at a time, no issues.
I also just tested sending the notification to a handful of users who didn’t receive it previously and it went through the second time, so something weird happened between the node server and the expo service.
Unfortunately I didn’t hold the ticket id’s, but I’ll definitely keep them next time. Is there anything else that I can do to ensure that my server is properly configured for that scale notifications?
We don’t impose any limit on the number of push notifications you can send. We recommend you add throttling (handled automatically in the expo-server-sdk-node) and retry logic to your server though to automatically handle any failed notifications that should be retried (depending on the error message).
u say: “when they opened the app, the got a “push notification failed” message.”
can u print your code, where u get token? its near with getDevicePushTokenAsync() call. o use try/catch with sentry?