diff --git a/src/index.tsx b/src/index.tsx index 926408b19..f03746241 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -33,7 +33,13 @@ if ('serviceWorker' in navigator) { pushSessionToSW(session?.baseUrl, session?.accessToken); }; - navigator.serviceWorker.register(swUrl).then(sendSessionToSW); + // The dev worker is an ES module (it imports workbox), so it must be + // registered as one — otherwise "script evaluation failed" and the dev + // client has no SW: authenticated media 401s and notification clicks + // never route. Production sw.js is a classic bundled script. + navigator.serviceWorker + .register(swUrl, import.meta.env.MODE === 'production' ? undefined : { type: 'module' }) + .then(sendSessionToSW); navigator.serviceWorker.ready.then(sendSessionToSW); navigator.serviceWorker.addEventListener('message', (ev) => {