Just want to throw some extra weight behind this - FCM push notifications have been extremely unreliable for us ever since the switch.
Definitely don’t think it’s anything server side, as we use our own push notifications system hooking into SNS directly. We get
"status": "SUCCESS" logs for every notification we send, but the success rate of receipt is very, very low. The problem seems to occur less often if you’re on a higher quality internet connection, and we’ve found that Samsung devices are particularly susceptible (though those two points are both pretty anecdotal).
I’ll answer your questions as well below, see if we get any contrast:
- This is for Android only. Yes, iOS notifications are far more reliable.
- You have FCM correctly configured. Yes, we successfully send notifications some of the time, we get success status responses in SNS, and we configured the app exactly according to the docs.
- You are able to receive notifications in a standalone app. Yes.
- Some devices don’t receive notifications. Yes, not sure if there’s a pattern, but the success rate is fairly low despite there being no issues on the back end.
- Devices have Google Play Services enabled. Yes, absolutely.
- You are always receiving “ok” in the push receipt. Yes, SNS says success and we still don’t get any sort of receipt.
The issue is very transient, it will work for a bit, then it won’t work for a bit, and then it will start working again. We’ve found if we manually delete a device token (note, not an Expo push token) from our database, then Expo saves a new one to our system, that seems to trigger some unreliability also.
I am also happy to pass on message IDs, and anything we can do to assist we will do - this is a big problem for us out to production.