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

Thank you very much for the detailed guidance.

We're updating our logging as soon as possible to capture and retain the apns-id returned in the APNs response headers, so we can provide it for future cases.

However, some of the "not received" cases we're currently investigating occurred before our apns-id logging was in place, so we don't have the apns-id for those. For these earlier cases, would it be possible for you to investigate using only the push token (device token) together with the approximate send time, so we can see the specific error? We do have the tokens and timestamps for those cases.

We're also a bit hesitant to post sensitive information such as apns-id, push tokens, or device tokens here on the public forum, out of concern that they could be misused to send unauthorized notifications. Is there a more private channel, for example email or a support request, through which we could share these details securely?

Thanks again for your help.

I understand the data is sensitive.

I'd like you to submit a code-level support request so we can discuss this further privately.

When you create the request, indicate that you were referred by me at Apple and make sure to include a link to this thread.

Thanks

Albert  WWDR

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