We have published our stand-alone, non-detached Expo app to the app stores about two months ago. It is being used by our customers on both Android and iOS.
The Expo push notification servers have been running normally. If you tell us your project name (the “slug” in app.json) we can look into whether the error rate for your project is abnormal. That said, the asynchronous iOS push receipts contain status: "ok" only when Apple’s push notification service has successfully acknowledged receipt of the notification so it sounds like this issue could be a problem between APNs and the devices.
Ok, i think i have found the cause of the problem. These are all users that were previously using the previous, non-Expo, plain React Native version of our app, which was using react-native-push-notification for the push notifications. We have published our Expo app in the appstore as an update to that app.
So, we have essentially switched push notification providers and judging by the many questions about this on Stack Overflow, this can be a problem on iOS. I can’t seem to find a solution to the problem in a React Native / Expo context however.
One of the users confirmed that reinstalling the app solves the problem.
Is there any way to fix this for all our users without asking them to reinstall the app?
We’ll dig in further since we don’t have enough information to say what’s going on yet. In order to get an Expo push token, the client needs to send the device’s native APNs token to the Expo servers, so assuming things are working as expected this means that the Expo servers have the APNs tokens.
I wouldn’t expect that switching push notification services would cause an issue because Apple doesn’t care where the notifications are coming from. As long as you have the right credentials to send a notification to a device with a given APNs token, Apple will try to deliver it for you.