Thanks @Pawan Jain . The issue I see is that sometimes the device token in a browser is a new token, but we have no record of what token that browser originally used. So we can either a. delete all tokens - thus removing tokens from devices that should be receiving notifications, or b. leave invalid tokens on the user which just fail on every push notification. Is there a third method I can't see here? Perhaps storing a device token in local storage so we can check if it has changed? I'm not sure how reliable this would be.