System Information: iPhone 13, iOS 17.6.1
Steps to reproduce:
- Open my app, causing it to register for an APNS token
- Kill my app to make sure it is not in the foreground
- Send a push notification with a payload similar to this:
{"aps":{"alert":{"title":"My App Name","body":"10:24am 🚀🚀🚀"}},"price":19,"clock":175846989,"time":1731001868.379526}
And the following attributes:
Expiry: (Date that is 7 days from now)
Type: Alert
Priority: High (10)
Payload Size: 141 bytes
- The notification appears in the Notification Center, as expected
- Turn on Airplane Mode (WiFi=off)
- Wait between 60 seconds - 8 hours (varies)
- Send the same notification payload/attributes again
- Wait between 60 seconds - 8 hours (varies)
- Turn on WiFi
- Wait 1-30 minutes (varies)
Expected behavior:
- The notification appears in the Notification Center
Actual behavior:
- Push notifications from other apps immediately appear in the Notification Center
- Roughly 30% of the time: The push notification(s) from my app never arrive, even after waiting 30 minutes
- Roughly 70% of the time: The notification appears in the notification center, and everything works fine
Thoughts:
- Expiry must be set correctly because I've seen my notifications get queued and then delivered (correctly) in the CloudKit Push Notification tool.
- Identical notifications (payload, APNS headers, etc.) are also sent to other devices at the same time. They receive the notifications just fine.
- It must not be my iPhone's notification Settings, because notifications appear correctly when online
- I've tried restarting the iPhone, it did not fix this issue
- So it seems it must be an unexpected behavior in APNS or something broken with my specific phone? Not sure what else I could possibly do to make sure the notifications arrive.
This breaks the entire experience of my app. I need to be able to notify users of incoming messages so they do not miss them.