Step 1: I'll do some tests so see if recovering a subscription is doable, after deleting and registering a SW again.
Recovering is not possible, one cannot add manually a pushSubscription in the Push API. A new subscription has to be done. It will require a manual click from the Device page.
Step 2: I would decouple SW registration and push subscription. Initially i did all in one in the device add component to avoid registering SW for everyone, but maybe that was a bad idea. SW registration on home page iwth site load (the standard way) and then push subscription (or recover ?) in the device page. That would allow to list subscriptions and match the DB entries to flag the invalid ones.
Step 3: add a Repair button to fix an Expired device
(DELAYED: not needed for now) Step 4: Implement pushsubscriptionchange event for at least FF, to try to handle expired push subscriptions