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 уведомлений пользователь пропускает важные события, а бизнес теряет повторные касания.
Нужна похожая задача?
Опишите проблему и пришлите ссылку, скрин или лог. Я разберу причину, предложу понятный план исправления и не буду обещать результат без первичного просмотра.