Skip to content
Browsers & devices · 9 min read

Web push notifications not working? Fix it by symptom

Most push problems come down to five things: permission, the operating system, the service worker, caching or iPhone’s Home Screen rule. Find your symptom and work down the list.

Updated By the Pusharoo team
In short
  • No prompt? You may have dismissed or blocked it, or the browser is using a quiet UI.
  • Subscribed but nothing arrives? Check OS notification settings and Focus/Do Not Disturb first.
  • Make sure /sw.js loads as JavaScript and isn’t cached or rewritten by a CDN.
  • On iPhone, it must be opened from the Home Screen icon on iOS 16.4+.

Symptom: the prompt never appears

  1. You tapped “Not now” recently — prompts are capped for a few days. Try a private window.
  2. The site’s permission is “Block” — reset it in the browser’s site settings.
  3. The browser uses a quiet UI (Chrome, Edge) or blocks non-click requests (Firefox, Safari): look for a bell icon in the address bar.
  4. You’re on iPhone in a Safari tab — Home Screen required.
  5. The script didn’t load: an ad blocker or Content-Security-Policy may block it. Add data-debug="true" to the Pusharoo snippet and check the console.

Symptom: subscribed, but nothing arrives

  1. Check OS settings: the browser must be allowed to notify (macOS System Settings, Windows Notifications, Android app settings).
  2. Turn off Focus / Do Not Disturb, or look in the notification centre — the message may be there silently.
  3. Desktop browsers must be running (Chrome and Firefox can run in the background).
  4. Confirm the worker: https://yoursite.com/sw.js opens and shows JavaScript.
  5. Check for two service workers competing for the same scope; merge them (existing worker).
  6. Send a test to just your device and watch the browser DevTools console in the worker context (testing guide).

Symptom: “origin not allowed” or subscribe fails

  • The site address registered in Pusharoo must exactly match the page origin — https, same domain (www is accepted automatically).
  • Push requires HTTPS; http:// pages can’t subscribe (localhost is allowed for development).
  • Service workers can’t be served from a different domain; the file must be on your own origin.

Symptom: it worked, then stopped after a change

  • A CDN or caching plugin is serving an old sw.js. Bypass cache for /sw.js and your manifest (Cloudflare steps).
  • A JS optimiser (Rocket Loader, minify/combine, “delay JavaScript”) is rewriting the worker or snippet — exclude them (WordPress caching notes).
  • A theme or plugin update removed the snippet from your header.

Symptom: iPhone shows nothing

  • iOS/iPadOS must be 16.4 or later.
  • The site must be added to the Home Screen and opened from that icon — not from Safari.
  • Your manifest must exist and use "display": "standalone" (PWA guide).
  • Check Settings → Notifications → your web app’s name.

Symptom: works in Chrome, fails in one browser

BrowserUsual cause
Brave“Use Google services for push messaging” is off (fix)
FirefoxPrompt requested without a click
Opera MiniNo service worker support
Safari on iPhoneNot opened from the Home Screen
Samsung InternetBattery optimisation delaying delivery

Symptom: blocked by security headers

A strict Content Security Policy can block the snippet (script-src) or its API calls (connect-src); a Service-Worker-Allowed mismatch or a worker served with the wrong MIME type stops registration. Check the console for CSP violations and the Network tab for the /sw.js response type — it must be JavaScript, not HTML.

Symptom: Android delays or misses notifications

  • Allow notifications for the browser in Android settings (Android 13+ asks once).
  • Disable battery optimisation for the browser if your phone maker is aggressive.
  • Long-press a previous notification to check the site wasn’t silenced.

Questions

Why did my push notifications suddenly stop working?

The most common causes are a cached or replaced sw.js, a removed snippet after a theme update, or OS-level notification settings changing after an update.

How do I reset notification permission for a site?

Click the icon left of the address bar, open site settings and reset Notifications to Ask. In Safari, use Settings → Websites → Notifications.

Can an ad blocker stop web push?

Some block push vendor scripts. The browser permission still works, but the subscribe flow may not start. Test with blockers disabled to confirm.

Why do notifications stop after a few weeks?

Expired subscriptions, uninstalled browsers, cleared data, or the user silencing the site. Remove dead subscriptions on 404/410 responses.

Why do notifications arrive late on Android?

Battery optimisation and Doze can delay normal-urgency messages. Use high urgency only for time-sensitive alerts.

More in Browsers & devices: Firefox push notifications: how they work · Safari push notifications on the Mac · Microsoft Edge push notifications · Web push notifications on Android · PWA push notifications on iOS and Android · How to turn off website notifications · Samsung Internet notifications, explained · Push notifications in Opera and Opera GX · Brave push notifications: why they fail and how to fix it · Website notifications on a Chromebook · How to get website notifications on your iPhone · All guides

Free for life. No limits.

Unlimited subscribers, campaigns and automations. No badges. About five minutes to install.