Push token deactivation
A push token is considered invalid (hardbounce) and its subscription status changes to Hardbounced if the provider response contains one of the markers from the tables below. A marker is a substring of the error text: matching is case-sensitive, except for the FCM API v1 marker, which is compared as an exact match.
When a marker matches, the subscription is deactivated at the moment the provider response is processed — for the FCM API v1 marker, right after the hbounce event is registered. The hbounce and undeliv events are generated at the same time — they can be used to build automation scenarios.
Provider errors that deactivate the token
| Provider group | Markers in the error text | Error description |
|---|---|---|
| Firebase / FCM: Android, iOS, Samsung, Opera, Yandex, Chrome via Firebase, Firefox via Firebase, RuStore | NotRegistered | The app was uninstalled from the device, the token was revoked, or the device stopped receiving pushes from FCM. The platform no longer sends to this token and deactivates the subscription. |
| Firebase / FCM: Android, iOS, Samsung, Opera, Yandex, Chrome via Firebase, Firefox via Firebase, RuStore | InvalidRegistration | The token is incorrect: damaged, malformed, or generated for a different app or project. The platform no longer sends to this token and deactivates the subscription. |
| Firebase / FCM: Android, iOS, Samsung, Opera, Yandex, Chrome via Firebase, Firefox via Firebase, RuStore | Requested entity was not found. | FCM has no record of this token in its database (the token never existed or was deleted). The platform no longer sends to this token and deactivates the subscription. |
| Firebase / FCM (FCM API v1 sender) | The registration token is not a valid FCM registration token | Same meaning as InvalidRegistration: FCM API v1 does not recognize the token as valid. The platform no longer sends to this token and deactivates the subscription. |
| Chrome Web Push (legacy API) | NotRegistered / InvalidRegistration | Same meaning as in FCM: the push subscription was removed by the user or the browser, or the token is damaged. The platform no longer sends to this token and deactivates the subscription. |
| APNs (iOS, Safari) | Unregistered | The device token was revoked by Apple: the app was uninstalled, pushes are disabled in iOS settings, or the token was reissued. The platform no longer sends to this token and deactivates the subscription. |
| APNs (iOS, Safari) | BadDeviceToken | Apple did not recognize the token: invalid format, damage, or the token is not associated with this app. The platform no longer sends to this token and deactivates the subscription. |
| Safari Web Push (native) | Unregistered | The Safari push subscription was removed (the user disabled notifications or reset the site permissions). The platform no longer sends to this token and deactivates the subscription. |
| Firefox Web Push (legacy) | No such subscription | The Firefox push subscription was not found: it was revoked by the user or expired. The platform no longer sends to this token and deactivates the subscription. |
Providers without deactivation
| Provider group | Behavior |
|---|---|
| Huawei (Android / Web / iOS) | All errors are considered temporary |
| Yandex AppMetrica (all token types) | All errors are considered temporary |
| Mail.ru Push | All errors are considered temporary |
Errors that do not deactivate the token
All provider responses that do not contain markers from the tables above (including Sender MissMatch) are considered temporary errors: a softbounce is registered for them, delivery is retried, and then an undelivery (undeliv) is recorded. The subscription status does not change, and sending continues on subsequent runs.
Summary
| Provider response | Events | Subscription status |
|---|---|---|
| Contains an HB marker from the table | hbounce + undeliv | Hardbounced (token deactivated) |
| Another error | sbounce (retries) → undeliv | Unchanged (token remains active) |
Subscription statuses are described in the Subscriber profile article. Push undelivery causes are collected in the Undeliveries report.