Service Worker Registration Failed

88,542

Solution 1

Solved: First thing is service worker only works in secure mode either in https or localhost. It doesnot work in local resources like file:// or http.

and second issue was during registration.

navigator.serviceWorkerContainer
      .register('service-worker.js')
      .then(function(reg){

Solution 2

Use chrome webserver, to run the app or just a simple command in terminal(Mac) would do. python -m SimpleHTTPServer

Share:
88,542
Saugat Bhattarai
Author by

Saugat Bhattarai

I’m Saugat Bhattarai, a web developer and machine learning enthusiast living in Kathmandu. Currently, I am working on RealTime Vehicle Tracking and Recognition, a Computer Vision Project at Inspiring Lab Pvt. Lab.

Updated on January 14, 2022

Comments

  • Saugat Bhattarai
    Saugat Bhattarai over 2 years

    I am currently working on service worker to handle push notification in browser. Currently I am having this "SW registration failed error":

    SW registration failed with error SecurityError: Failed to register a ServiceWorker: The URL protocol of the current origin ('null') is not supported.

    Check client1.html and service-worker.js file below:

    service-worker.js

    console.log('Started', self);
    self.addEventListener('install', function(event) {
      self.skipWaiting();
      console.log('Installed', event);
    });
    self.addEventListener('activate', function(event) {
      console.log('Activated', event);
    });
    self.addEventListener('push', function(event) {
      console.log('Push message received', event);
    });
    
    

    client1.html

    <!doctype html>
    <html>
      <head>
        <title>Client 1</title>
      </head>
      <body>
        <script>
          if('serviceWorker' in navigator){
            // Register service worker
            navigator.serviceWorker.register('service-worker.js').then(function(reg){
              console.log("SW registration succeeded. Scope is "+reg.scope);
            }).catch(function(err){
              console.error("SW registration failed with error "+err);
            });
          }
        </script>
      </body>
    </html>
    

    Can anyone help with this issue?