| Permission prompt does not appear | Not called from user gesture or browser quiet UI | Ask from explicit action after explaining value |
| Permission denied | User denied or browser blocked prompts | Respect denial and show settings instructions |
| Subscribe fails | Missing service worker, bad VAPID key, unsupported browser | Verify navigator.serviceWorker.ready and key format |
| Push sent but no notification | Worker push handler missing or payload error | Log push event and call showNotification() |
| Click opens wrong page | Missing notificationclick route data | Store target URL in notification data |
| Notifications work on desktop but not mobile | Platform support difference | Test target OS/browser and provide alternate channel |
| Subscription stops working | Expired or invalid subscription | Remove failed subscriptions and ask user to resubscribe |