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.