Playbook: Push Notifications Not Arriving

Before you touch anything

Establish the blast radius. One member, one gym, or everyone? One platform (iOS or Android) or both? In-app bell notifications present but no push, or neither? The answers usually identify the link in the chain on their own.

Work the chain in order

  1. Is it only one person? Check they are on the installed app, signed in, and granted notification permission. Notifications denied at the operating system level cannot be re-prompted from inside the app — they must be re-enabled in phone settings.
  2. Does a device token exist? No token means registration never completed — almost always permission, or a build that cannot reach Firebase. Send a test from Settings → Push Notifications and read the per-device result.
  3. Did we try to send? Read the send-push-notification logs for that trigger. If the bell shows the message but the phone did not, the send happened and the failure is downstream.
  4. Was the category switched off? Optional categories can be disabled by the member. Urgent and warning alerts cannot.
  5. Is it everyone? That points at the relay or credentials, not at devices. Check the relay is reachable and its service account is still valid.

Stale devices

Reinstalls and old builds leave dead tokens behind; token pruning clears them. A member showing several devices when they own one phone is a symptom of an older build, not of a delivery fault.

What to tell the gym

Be specific about the cause and the fix — permission, preference, or platform. Never promise delivery timing; push is best-effort and a phone in battery saver may hold notifications back.