Today we have deployed a new version of Pushpad which improves deliverability of push notifications and make it easier to find and debug any delivery failure.
Here's what has changed internally:
- Pushpad only establishes connections with known push services, thus banning unreliable hosts (like "chromlum") that can produce long, useless waits and eventually produce a denial of service
- On the other hand we have increased the HTTP timeouts when we connect to reliable push services: thus, even if there are problems on the network, there are more chances that the notification gets delivered
- We have also increased the number of retries in case the notification delivery fails: a total of 4 attempts is made with exponential backoff (20 seconds * 3^n)
- We have enabled retries even when the push service (e.g. Mozilla autopush, Firebase) returns a 5xx status code: thus transient errors do not cause a delivery failure
We have also made some improvements to notification tracking and monitoring.
From the dashboard, click on any notification to see the details. Now you can also see:
- the total number of recipients
- a detailed report about failed deliveries
- some pie charts about the delivery rate and click rate
That information is also available in aggregated form in the project stats, which are accessible from the dashboard.