api.development.push.apple.com times out

I'm using the HTTP/2 protocol for sending push notifications.


My push server code recently intermitently stopped working for developer notifications at https://api.development.push.apple.com:443/3/device/


Essentially the url requests were being timed out, not working for hours at a time. Sometimes I will try again a few hours later and then they will be sending fine. The production push server responds fine, it's just the development url that times out.


This has been happened a couple days now -- is there a problem with Apple's servers at https://api.development.push.apple.com:443/3/device/ that are failing to handle requests?

Hi drnick,


i'm having the same problem since a few days.


"api.development.push.apple.com" returns 2 different IPs - one is working fine (17.110.227.100) and the other one (17.172.238.203) sometimes times out at port 443:


# dig +short api.development.push.apple.com

api.sandbox.push-apple.com.akadns.net.

17.110.227.100


# dig +short api.development.push.apple.com

api.sandbox.push-apple.com.akadns.net.

17.172.238.203


# telnet 17.110.227.100 443

Trying 17.110.227.100...

Connected to 17.110.227.100.

Escape character is '^]'.


# telnet 17.172.238.203 443

Trying 17.172.238.203...


I think there is a problem with one of Apple's Push Server.. but i don't really know. Hopefully it will be fixed soon.

Looks like apple fixed the problem.

For the past couple of days the (17.110.227.100) server has been totally inaccessible. However (17.172.238.203) works as intended.
Really frustrating having to reconnect until the dns round robin hits the correct server.


curl -v -d 'Hello' --http2 https://api.development.push.apple.com/3/device/test
*   Trying 17.110.227.100...
* Connected to api.development.push.apple.com (17.110.227.100) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /usr/local/etc/openssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to api.development.push.apple.com:443
* Closing connection 0
curl: (35) Unknown SSL protocol error in connection to api.development.push.apple.com:443


curl -v -d 'Hello' --http2 https://api.development.push.apple.com/3/device/test
*   Trying 17.172.238.203...
* Connected to api.development.push.apple.com (17.172.238.203) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /usr/local/etc/openssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=api.development.push.apple.com; OU=management:idms.group.533599; O=Apple Inc.; ST=California; C=US
*  start date: Jun 19 01:49:43 2015 GMT
*  expire date: Jul 18 01:49:43 2017 GMT
*  subjectAltName: api.development.push.apple.com matched
*  issuer: CN=Apple IST CA 2 - G1; OU=Certification Authority; O=Apple Inc.; C=US
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* TCP_NODELAY set
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f82ea80de00)
> POST /3/device/test HTTP/1.1
> Host: api.development.push.apple.com
> User-Agent: curl/7.47.0
> Accept: */
> Content-Length: 5
> Content-Type: application/x-www-form-urlencoded
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
* We are completely uploaded and fine
< HTTP/2.0 403
<
* Connection #0 to host api.development.push.apple.com left intact

A number of Pushy users have been reporting the same problem in the past few days. Have you folks filed a bug report about this issue? When a similar issue popped up in the production environment, everybody was encouraged to file a bug report; seems like it'd be a good idea in this case, too.

I have the same problem. Around 80-90% chance I got "handshake timed out" error, only 10 - 20% chance I can send notification successfully. Is this a bug?

Same problem again.

It looks like it only happens on develope APNS server. The same code works with production APNS server without problem.


However, it is still frustrated because my app is heavily relying on push notifications to update its states. I can not continue my development work without develop APNS server. Hopefully, someone from Apple can see this post and fix it ASAP.

I'm having the same problem. It's seriously impacting development. Very frustrating.

Radar filed: 26311870

Put the IP address instead of the name of the host. However, as of right now both development IP seem to be down.

Hi, did you have any response from Apple about this issue?

No, nothing. Does anyone know if there's a better way than bugreport to get the attention of their operations folks?

I'm having the same problem on Production Server(api.push.apple.com).

Same problem here with

api.development.push.apple.com
api.development.push.apple.com times out
 
 
Q