Skip to main content
Firebase Cloud Messaging (FCM) delivers push notifications to Android devices and Chrome browsers. FCM expires tokens for devices that have been inactive for more than 270 days. These devices may be lost, destroyed, or put into storage and are considered no longer reachable. When FCM expires a token, OneSignal marks the subscription as Unsubscribed the next time you send a push notification to that device. This is a cleanup exercise from Google. Your expected clicks, sessions, and the value you get from OneSignal do not change. You may also see benefits:
  • More accurate analytics. Your CTR reflects your actual reachable audience.
  • Faster delivery. Smaller audiences mean campaigns finish delivering faster.
  • Less manual work. You do not need to manually manage inactive audiences.

Recent changes driving unsubscribe spikes

Sudden spikes in unsubscribes have become more common since Google rolled out a series of Chrome and FCM updates aimed at curbing notification spam and cleaning up inactive subscriptions. These updates include:
  • On-device ML notification warnings (Chrome for Android, late 2024). Chrome analyzes notification content on-device and warns users about deceptive or spammy notifications, offering a one-tap option to unsubscribe. See Fighting unwanted notifications with machine learning.
  • Automatic permission revocation via Chrome Safety Check (October 2025). Chrome on Android and desktop automatically revoke notification permission for sites that send a high volume of notifications but receive very low user engagement. Installed PWAs are excluded. See Reducing notification overload for a quieter browsing experience.
  • Push API rate limits (Chrome, late 2025 onward). Chrome enforces rate limits on the Push API for origins flagged as abusive, with cooldown periods before new pushes are accepted.
  • FCM 270-day expiry cleanup. The 270-day inactivity threshold has been in place for a while, but sending to a broad audience after a long pause surfaces the cleanup as a visible unsubscribe spike, since OneSignal marks each expired subscription as unsubscribed after the failed send.

Troubleshooting unsubscribe spikes

If you notice a sudden increase in unsubscribes for Android or Chrome subscriptions, follow these steps:
1

Verify your SDK version

Check your site or app to confirm OneSignal is on the latest SDK version and that you have not removed the SDK or made any recent changes to your integration.
2

Review your engagement trends

Navigate to Dashboard > Analytics > Engagement Trends to check your send, delivery, and unsubscribe patterns over time. See Aggregate trends for details on reading these charts.
3

Check your send frequency

Due to the way push works, if users uninstall the app, clear browser data, or unsubscribe from notifications in their device settings and never return to the app or site, it takes 2 or more push notifications to detect the unsubscribe. See When do push subscription statuses update? for more details.If you go long periods without sending messages to all your users, you will see spikes in unsubscribes when you resume sending. Send messages to all users at least once or twice a month to detect unsubscribes gradually rather than in large batches.
4

Evaluate your delivery metrics

If you regularly send messages to all users and your confirmed receipt and click metrics are normal, the unsubscribes are likely FCM cleaning up invalid tokens for your app. This does not affect your reachable audience.

FAQ

Why did I see a sudden increase in Android and/or Chrome unsubscribes?

FCM expires tokens for devices inactive for more than 270 days. When you send a push notification to those devices, their push subscriptions are marked as unsubscribed. You will see this reflected as increased unsubscribe counts in your dashboard and delivery reports. Google has also introduced additional changes that more aggressively remove inactive or low-engagement subscriptions.

What happens after a device token is expired?

The expired token is permanently invalid. The subscription is marked as Unsubscribed in OneSignal after attempting to send a push notification to the device.

Does inactivity on my app specifically trigger token expiry?

No. FCM measures inactivity at the device level, not per Firebase project. Even if a device has not opened your app in 270+ days, the token remains valid as long as the device itself is active. You will not know a token is expired until you send a notification and see the subscription marked as unsubscribed.

What if an inactive device comes back online?

When the user opens your app again, the OneSignal SDK automatically retrieves a new push token and updates the existing subscription record. The user keeps their subscribed status and does not need to opt in to push again. Push permissions are stored on the device for a given app.

Can I tell the difference between an active unsubscribe and an FCM token expiry?

No. FCM does not differentiate between these types of unsubscribes, so OneSignal cannot distinguish them either.

Subscriptions

How OneSignal tracks push subscriptions and when their status changes.

Analytics overview

Read the engagement, send, and unsubscribe trends for your app.

Push notifications

Concepts, delivery, and configuration for mobile and web push.

Firebase: Manage FCM tokens

Google’s reference on stale, expired, and invalid FCM registrations.