Files

1.2 KiB

Push Notification Testing Findings (Jul 9, 2026)

iOS Safari: PushManager not available in browser tab

  • Safari on iPhone does NOT expose PushManager in normal browsing mode
  • FAIL: No PushManager is expected
  • User must install the PWA: Share icon -> Add to Home Screen
  • Then open from home screen (fullscreen PWA mode)
  • APNs endpoint: https://web.push.apple.com/...
  • Chrome/Edge/Firefox on desktop work natively

Common bugs fixed:

  1. Banner hidden: display:none in HTML, JS must set style.display='block'
  2. user_id NULL: Foreign key constraint on push_subscriptions.user_id means test/no-auth subscriptions fail. Column must allow NULL or skip auth requirement on the subscribe endpoint
  3. Silent failure: send_push_notification() used except: pass — changed to print the error
  4. Import missing: import json was missing and webpush() needs it for json.dumps() payload
  5. Wrong venv: pywebpush must be installed in the same venv the systemd service uses

Trigger flow for scoring pushes:

  • send_push_notification(user_id, title, body, icon) is called after score events
  • Currently only works for authed users with subscriptions
  • No quiet hours check yet in the push function itself (only in settings toggle)