All pushes failing?

Hi,


Is anyone else seeing issues sending push notifications? We noticed that since yesterday around 4pm EST, we've been consistently seeing socket remotely closed errors for all of our production applications that send push notifications. I was able to reproduce the error on my local machine as well, and am wondering if there's an issue on the APNS side, although their status is green: https://developer.apple.com/system-status/


Help much appreciated, thanks,

Laura

Replies

We are seeing the same problem since about the same time as you state. Nothing has changed in our server code or infrastructure. I've asked for support from Apple but no response yet. It seems something must have changed at that time

Also seeing this for my app, seems like it just started very recently...


May be a library you're using, i.e. https://github.com/ostinelli/apnotic/issues/68

Apple changed their HTTP2 implementation and started enforcing headers ordering, at first only in the development environment. Now they have inforced also in production. If you are seeing error, update your libraries and hopefully they will work with the new implementation. If you are using https://github.com/ostinelli/apnotic just upgrade to latest.

According to this github thread on the apnotic gem: https://github.com/ostinelli/apnotic/issues/68 it appears that APNS was updated in production yesterday or today to start enforcing the order of HTTP2 headers. A new version of the apnotic gem was released (using fixes in underlying http libraries) that fixes this issue.

We discovered that when we send the HTTP/2 request to APNs that it was rejected because in addition to having a "method" and "path" request field we had also included a "host" field. I'm not sure if that was an old requirement or simply an error with our implementation.


Our code has been working away OK since Q4 2016 with no problems (with this "host" field included)


So it seems to me that up until 17th Jul 4PM EST APNs was OK with that but at that time must have done some upgrade which tightened up their spec to reject any requests containing that unneeded field.


So removing that host field and simply sending "method" and "path" solved our problem


Unfortunately it caused 38 hours of no service for our customers 😟 and no sleep for me 😢

Having the same issue. Anybody knows if there's an official statement referencing it?

We got the same problem, has anymore any idea about how to fix it. Any hint will be grate appreciated. Thank you~~