Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

Case-ID: 14080335 Push notification requests to iOS devices using APNs (HTTP/2) time out

We are currently developing a WebAPI service that uses APNs (HTTP/2) to send push notifications to iOS devices. (Using PushSharp's HTTP/2 support) The WebAPI service is running on IIS using .net framework 4.8 and c#.

The connection to APNs is always maintained, and the connection is checked every 30 minutes using a dummy token Ping. KeepAlivePeriod = 30 minutes and KeepAliveRetryPeriod = 10 seconds have also been set. However, the following issues are occurring.

  • Although the Ping sent immediately before was successful, a TimeoutException occurs in the notification request sent a few minutes later.
  • There is no explicit disconnection notification from APNs, and the connection appears to be silently disconnected.
  • Once a TimeoutException occurs, it occurs frequently afterwards.

Below is an excerpt from the log.

Apple Notification Failed for some unknown reason 1-1: One or more errors occurred.
Apple Notification Failed for some unknown reason 1-2:System.TimeoutException: The operation timed out.

In light of this issue, I would like to be advised on the following two points.

  1. Are there any official specifications regarding the lifecycle and expiration date of APNs HTTP/2 connections?
    Even if pings are sent periodically, is there a timeout or other setting that disables the connection on the APNs side?
  2. What are the conditions that would cause APNs to silently terminate a connection?

For example, could this be due to inactivity, TLS restrictions, network maintenance, etc.?

If you have any official documentation or technical guidelines to improve the reliability of this system, we would appreciate it if you could share them with us.

Thank you in advance.

I made a request to code-level-support, but I heard that replies on the Forums are currently prioritized, so I posted it here as well.

While we frequently hear such problems like unexplained disconnections and timeouts, these always turn out to be caused by factors outside of APNs.

The recommendation is to open a connection and keep it open as long as you need it. APNs will not disconnect due to inactivity, but we don't know what happens in between.

Maintenance on APNs side, of course, will happen from time to time.

Most cases of "unexplained" disconnections will be due to protective action from APNs. There are certain patterns that will trigger disconnections. These are not published, but they will usually be preceded with errors in previous push requests.

If you can share the apns-id of the last push request before the disconnection, we might be able to see what may have happened. We would need an occurrence within the last few days.


Argun Tekant /  DTS Engineer / Core Technologies

Thank you for your reply.

At approximately 2:47 AM UTC on June 2, 2025, I sent the following two requests.

These were successfully acknowledged.

  1. e9679965-50f7-4452-be2d-32ed1d3fc590

  2. d496c6e5-e291​​-430f-917d-5cae7d14d522

Then, at approximately 3:56 AM UTC on June 2, 2025, the following two requests timed out.

I would appreciate any information you could give me, especially about the first request.

  1. 60496d12-257d-436f-9900-c96ab82b87e7
  2. 08dae665-7268-41d5-aad7-62ec782b12c3

Thank you in advance.

Case-ID: 14080335 Push notification requests to iOS devices using APNs (HTTP/2) time out
 
 
Q