pushy: APNs server does not respond to some notifications
We’ve received reports that, starting on or around September 19, 2020, APNs servers have stopped responding to some notifications. From Pushy’s perspective, this can look like a Future that never resolves (completion handlers are never called and calls to .get() time out or wait forever). Please see the mailing list thread on this topic for additional background and discussion.
From HTTP/2 frame logs, the problem appears to be that the server simply never sends a HEADERS (or DATA) frame in response to a push notification and never closes the HTTP/2 stream associated with the notification.
At this point, the goal is to identify some specific notifications affected by this problem. If you’ve encountered this issue, we’re hoping to get the UUIDs (apns-id) and approximate timestamps of some affected notifications in the interest of sharing information upstream. Because the problem is that the server isn’t responding, you’ll need to assign your own apns-id values to outbound notifications (SimpleApnsNotification has a pair of constructors that accept an apnsId argument—using UUID.randomUUID() is recommended) to be able to uniquely identify which notifications are having this problem.
This issue is intended to consolidate a number of other reports on this topic, including #807, #814, and #815.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 45 (18 by maintainers)
Yes, I’m still investigating the issue. Thank you for your patience.
Friends, I understand this is a serious problem for many of you. I promise I’ll share updates as soon as they’re available.
I didn’t; I’ve been working through other channels.
Uuuuuuuugh… while I don’t doubt that this is the same problem, frame logs and UUIDs of affected messages would be a big help in diagnosing this (even if that just means forwarding that information to Apple). I do hope this is just a brief hiccup that self-resolves, but if anybody’s in a position to capture logs, that’d be awesome.
In the meantime, I’ll try to think through some appropriate resiliency strategies for “sometimes HTTP/2 streams just disappear.”