XF 2.2 ErrorException: Push notification failure: cURL error 28: Operation timed out after 10106 milliseconds with 0 bytes received


XenForo developer
Staff member
They're networking errors so their either represent an issue on your end or on the push server's end (well, or somewhere between, but that is effectively on their end). Unfortunately, there isn't a definitive way for us to know what the cause is from the error that XF/PHP receives. That's generally why we log errors like these.

If it's something on your end, then it's something that needs to be investigated, but otherwise, they should mostly be disregarded. They may point to the push notification receiving server having some difficulties or some sort of networking issue out of your control.

Errors on your end would, in many cases, be consistent. They would often be things like firewalls blocking connections or something similar. This usually manifests as nothing getting through, so if you get push notifications from your site, then that's not inherently the issue, though there could be some other sort of networking issues. You may need to check server logs to see if there are any hints of issues at corresponding times.

If you don't see anything and the issue is happening sporadically (most connections work), then it's very likely on the other end.
Actually it should deliver push messages. Dunno if successful web pushes are logged in any way, but these are not delivered - and users are complaining.
Unfortunately, in that error message there is no endpoint URL stated, so it's not possible for me to check what problem occured at all.

Actually, as far as I can see, 99% of all web pushes seems to be delivered, because we have let's say around 10-100 of these errors per day. That also means, we have no general connection problem (that would be a real problem then!) but the endpoint has. But which endpoint?

Is it possible to include the endpoint URL in the error message?
And have endpoints like, e.g. mozilla or google, any kind of rate limiting?
Would it be possible to retry delivery of web push for N times (config in backend)?