New issue
Advanced search Search tips

Issue 889943 link

Starred by 2 users

Issue metadata

Status: Unconfirmed
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Inactive push subscriptions should be removed from FCM

Reported by collimar...@gmail.com, Sep 27

Issue description

Steps to reproduce the problem:
Does FCM adopt any strategy to remove inactive push subscriptions?

For example, suppose that a browser or device is abandoned and thus it will never connect again to FCM. Do you mark the endpoints as "expired" after some time of inactivity? Or the endpoints will last forever?

Based on data collected in the following study (that I have published), it seems that you don't remove inactive subscriptions and this will create a steady decrement of delivery rates over time:

https://blog.pushpad.xyz/2018/09/web-push-subscription-age-affects-delivery-rates/

Basically it seems that unused subscriptions will last forever because:
- FCM keeps returning 2xx codes for old, inactive subscriptions
- Chrome does not provide expirationTime for push subscriptions

What is the expected behavior?
If a browser does not connect to FCM for a long time, then its push subscriptions should be removed (and the push service should return 410 Gone to the application server)

What went wrong?
Data collected show that unused push subscriptions last forever and are not removed properly by FCM

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version:   Channel: n/a
OS Version: 
Flash Version:
 
Labels: Needs-triage-Mobile
Cc: chelamcherla@chromium.org
Labels: Triaged-Mobile
Requesting someone from Blink>PushAPI team to please have a look.

Thanks!
Can you please provide an update on this?

It is really important to delete subscriptions that belong to abandoned devices... otherwise the number of inactive subscriptions grows constantly over time and the average delivery rate for valid endpoints drops towards zero.

Also note that other push services properly remove the endpoint after some time of inactivity. For example Mozilla autopush (in non-proxy mode) marks the endpoints as expired (410 Gone) when the device does not connect for 2 months.

Sign in to add a comment