Why some web push notifications are not delivered to the browser?

A notification that is successfully delivered to the browser push service, may not reach the end user for various reasons:

  • the recipient device is turned off
  • the recipient device has no internet connection
  • the recipient device has airplane mode enabled
  • the recipient device has power saving mode enabled
  • the browser is closed (some browsers, mainly desktop browsers, need to be open in order to receive push notifications)
  • the browser process that runs in background and is responsible for downloading the notifications may be killed for power saving; this happens mainly on mobile devices from Chinese OEM
  • the browser has not the right permissions to download data from the internet when the screen is locked (in that case the notification may be lost)
  • the user unsubscribed from browser preferences, but the browser push service wasn’t notified about that and thinks that the subscription is still valid
  • the user doesn’t use a given browser or device anymore (the browser push service should remove that subscription after some months of inactivity)
  • the browser push service (Mozilla autopush for Firefox, FCM for Chrome, etc.) crashes and loses some notifications
  • some browser versions may have serious bugs (example) that prevent the delivery of the notifications under some circumstances
  • the browser receives the signal, but the internet connection is lost when it tries to download the notifications (e.g. from the application server)
  • a notification expires because of its TTL before it can reach the recipient device; setting called Time To Live (TTL) can affect the delivery rate:  make sure to set the TTL to a large value (e.g. 2419200), otherwise a notification will be dropped on purpose if it can’t reach a device within that time period
  • some old subscriptions associated to devices or browsers that aren’t used anymore are not properly removed by the browser push service (e.g. FCM); in this case when you send a notification to that subscription, the browser push service keeps reporting that the subscription is valid, instead of reporting it as expired, but the notification won’t be delivered; check out this article for more information.

Leave a Reply

Your email address will not be published. Required fields are marked *