diff --git a/app/assets/javascripts/discourse/initializers/register-service-worker.js.es6 b/app/assets/javascripts/discourse/initializers/register-service-worker.js.es6 index d5c6c460c3..26d19206ff 100644 --- a/app/assets/javascripts/discourse/initializers/register-service-worker.js.es6 +++ b/app/assets/javascripts/discourse/initializers/register-service-worker.js.es6 @@ -11,6 +11,19 @@ export default { if (isSupported) { if (Discourse.ServiceWorkerURL && !isSafari) { + navigator.serviceWorker.getRegistrations().then(registrations => { + for (let registration of registrations) { + if ( + registration.active && + !registration.active.scriptURL.includes( + Discourse.ServiceWorkerURL + ) + ) { + registration.unregister(); + } + } + }); + navigator.serviceWorker .register(`${Discourse.BaseUri}/${Discourse.ServiceWorkerURL}`) .catch(error => {