Push notifications not received despite HTTP 200 from APNs — seeking help to identify the cause

We're experiencing an issue where push notifications are not being received on certain iOS devices, and we'd like help identifying the possible causes.

What we've confirmed so far:

  1. Push notifications are sent from our own provider server to APNs.
  2. APNs returns a normal response (HTTP/2 200)
  3. The device tokens are valid and up to date.
  4. Affected users have confirmed that notifications are enabled for our app in Settings.
  5. Users report no network connectivity issues.
  6. We are sending with apns-priority: 10 and apns-push-type: alert.

Scope:

  • This is occurring for multiple users, not isolated to a single device.
  • It happens intermittently — some notifications from the same campaign reach the device, while others don't.
  • Critically, some affected users report that they only fail to receive notifications from our app during certain specific time windows, while notifications from other apps arrive normally during the same period. This suggests the issue is app-specific and time-correlated, rather than a device-wide or network-level problem.

Questions we'd like help with:

  1. Given that APNs returns 200, are there known scenarios where the notification still doesn't reach the device? (e.g., Focus / Do Not Disturb, low power mode, high-frequency throttling, stored-then-discarded due to apns-expiration)
  2. Is there a recommended way to obtain per-notification delivery status in the production environment?
  3. Are there known limits on how many notifications can be sent to the same device within a short window before APNs starts throttling or coalescing them?
  4. Our server logs currently do not retain the apns-id returned by APNs. If we provide the affected device tokens along with the approximate send timestamps, would it be possible for Apple to help investigate the delivery status of those notifications on the APNs side?

Any guidance or pointers to relevant documentation would be greatly appreciated. Thank you!

Thank you for the post. Can you send the APNS id when it happens so we can trace the token and see the error and provide the timestamp?

There are a few reason that could happens as well as you should be aware that users may have Focus modes scheduled during specific time windows. If your app is not on the allowed list for that Focus mode, the notification is delivered silently to the Notification Center but will not wake the screen or show a banner.

Also if the device is offline, APNs stores only one notification per app. If you send a massive burst of notifications to a single device token in a very short window, APNs may throttle delivery, coalesce them, or drop them.

My suggestion is to update your server logging immediately to capture and retain the apns-id returned in the response headers from APNs.

Albert  WWDR

Push notifications not received despite HTTP 200 from APNs — seeking help to identify the cause
 
 
Q