Push-уведомления могут работать после первой подписки, а потом постепенно переставать приходить части пользователей.

Если push используется для заказов, задач, статусов или возврата пользователя, потеря token означает потерю канала связи.

Коротко: приложение должно уметь проверять подписку и переиздавать token, а не хранить его навсегда.

Почему возникает проблема

Token может измениться после обновления браузера, очистки данных, смены service worker, истечения FCM token, изменения VAPID-ключей или отзыва разрешения пользователем.

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

  • регистрируется ли service worker
  • актуальны ли VAPID или FCM настройки
  • сохраняется ли новый token на сервере
  • проверяется ли разрешение notifications
  • удаляются ли невалидные подписки

Как я решаю такую задачу

Я проверяю push как двухстороннюю систему: браузерная подписка и серверная база token.

  • проверяю регистрацию service worker
  • смотрю получение token на клиенте
  • исправляю повторную регистрацию
  • обновляю token на сервере
  • тестирую отправку и обработку невалидных подписок

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

  • страницу подписки на push
  • какой сервис используется
  • пример пользователя без уведомлений
  • доступ к frontend и backend
  • ключи VAPID/FCM при необходимости

Сроки и риски

Если сломалась регистрация service worker, правка точечная. Если в базе накопились старые token, нужно добавить очистку и обновление.

Чего лучше не делать

Не отправляйте push бесконечно на невалидные token. Это создает ошибки, задержки и шум в логах.

FAQ

Пользователь должен заново разрешать уведомления?

Не всегда. Если разрешение сохранено, можно переиздать подписку программно.

Почему push работает в одном браузере, а в другом нет?

У браузеров разные требования к service worker, HTTPS и разрешениям.

Нужно ли хранить device id?

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

Можно ли увидеть ошибку отправки?

Да, сервер отправки push обычно возвращает статус невалидной подписки.

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

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Пришлите ссылку, пример ошибки и короткое описание того, как должно работать. Я посмотрю задачу, предложу безопасный план и скажу, какие доступы понадобятся.

Итог

Push-система должна автоматически обновлять token, удалять невалидные подписки и сохранять доставку уведомлений без ручной переподписки каждого пользователя.