The unregister() method of the ServiceWorkerRegistration interface unregisters the service worker registration and returns a Promise. The promise will resolve to false if no registration was found, otherwise it resolves to true irrespective of whether unregistration happened or not (it may not unregister if someone else just called ServiceWorkerContainer.register() with the same scope.) The service worker will finish any ongoing operations before it is unregistered.

Note: This feature is available in Web Workers.


serviceWorkerRegistration.unregister().then(function(boolean) {



Return value

Promise resolves with a boolean indicating whether the service worker has unregistered or not.


The following simple example registers a service worker example, but then immediately unregisters it again:

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw-test/sw.js', {scope: 'sw-test'}).then(function(registration) {
    // registration worked
    console.log('Registration succeeded.');
    registration.unregister().then(function(boolean) {
      // if boolean = true, unregister is successful
  }).catch(function(error) {
    // registration failed
    console.log('Registration failed with ' + error);


Specification Status Comment
Service Workers
The definition of 'ServiceWorkerRegistration.unregister()' in that specification.
Working Draft Initial definition.

Browser compatibility

BCD tables only load in the browser

See also