Web Push зависит от разрешения пользователя, service worker, подписки и VAPID-ключей. Один сломанный элемент - и уведомления перестают приходить.

Почему это важно

Причины: пользователь отозвал permission, service worker не активен, subscription устарела, VAPID-ключи сменились, payload невалиден или push-сервис браузера вернул ошибку.

Что проверяю в первую очередь

  • Есть ли permission на уведомления.
  • Активен ли service worker.
  • Актуальна ли subscription в базе.
  • Совпадают ли VAPID keys.
  • Что отвечает push service при отправке.

Как исправляю

Я проверяю доставку от backend до браузера и удаляю битые подписки, чтобы база не копила мертвые endpoints.

  • Проверяю разрешение и service worker.
  • Тестирую отправку на конкретную subscription.
  • Исправляю VAPID и payload.
  • Добавляю обработку 404/410 подписок.
  • Проверяю уведомление в разных браузерах.

Что будет после исправления

  • Браузерные уведомления снова приходят.
  • Битые подписки очищаются.
  • Ошибки push delivery логируются.
  • Сервис не отправляет уведомления в пустоту.

Что подготовить

  • URL сайта/PWA.
  • Код отправки push.
  • Пример subscription.
  • Браузер и устройство для теста.

Вопросы и ответы

Можно ли решить точечно?

Да. В большинстве случаев проблема в service worker, VAPID или устаревшей подписке.

Почему не стоит откладывать?

Без push уведомлений пользователь пропускает важные события, а бизнес теряет повторные касания.

Нужна похожая задача?

Опишите проблему и пришлите ссылку, скрин или лог. Я разберу причину, предложу понятный план исправления и не буду обещать результат без первичного просмотра.