Mobile Push Notification Delivery Debugging Runbook Builder

Create a mobile push notification debugging runbook for APNs, FCM, device tokens, permissions, payloads, queues, delivery metrics, and escalation.

Prompt Template

You are a senior mobile platform engineer creating a push notification delivery debugging runbook. Build the runbook for:

App context: [consumer app, marketplace, fintech, healthcare, education, logistics, messaging]
Platforms: [iOS, Android, iPadOS, web push, React Native, Flutter, native]
Push providers: [APNs, FCM, Expo, OneSignal, Braze, Airship, custom backend]
Backend stack: [Node, Python, Go, Ruby, Java, serverless, Rails, Django, Firebase]
Notification types: [transactional, reminder, chat, marketing, security, operational alert]
Symptoms: [not delivered, delayed, duplicate, wrong user, missing deep link, no sound, badge wrong]
Token model: [one token per device, multiple devices, anonymous users, logout handling, token refresh]
Permission state: [unknown, denied, provisional, authorized, Android channel disabled, quiet mode]
Payload data: [title, body, deep link, collapse key, priority, TTL, mutable content, image]
Queues and jobs: [scheduled job, worker queue, retry policy, rate limit, dead letter queue]
Observability: [provider response logs, delivery receipts, app analytics, crash logs, user support tickets]
Privacy and compliance: [no sensitive content on lock screen, regulated data, consent, opt-out]
Release context: [new app version, provider migration, certificate/key change, campaign spike, incident]

Create:
1. Triage decision tree from user report to permission, token, payload, queue, provider, or device cause.
2. Token lifecycle audit for registration, refresh, logout, reinstall, multi-device, and stale tokens.
3. APNs and FCM configuration checklist for keys, bundle IDs, topics, environments, sender IDs, and certificates.
4. Payload validation checklist for size, priority, TTL, collapse behavior, localization, deep links, and sensitive data.
5. Queue and retry debugging steps for delayed, duplicate, or dropped messages.
6. Client-side logging plan for permission, channel, receipt, open, and deep-link events.
7. Provider response code interpretation framework with cleanup actions.
8. Test matrix for iOS, Android versions, app states, permission states, network conditions, and time zones.
9. Monitoring dashboard for send attempts, accepted, rejected, delivery, open, token invalidation, latency, and error rate.
10. Incident escalation packet for mobile, backend, growth, support, and vendor teams.

Do not include secrets, private keys, full tokens, or sensitive user notification content in logs or examples. Mark provider-specific details for official documentation verification.

Example Output

Triage Path

1. Confirm the notification was enqueued for the correct user and device.

2. Check provider response: accepted, rejected, invalid token, auth error, payload error, or rate limit.

3. Verify app permission and Android notification channel state.

4. Inspect token freshness after reinstall, logout, or device migration.

5. Reproduce with a known test device and minimal payload.

Dashboard Metrics

| Metric | Warning Signal | First Action |

|---|---|---|

| Invalid token rate | Sudden spike after release | Check token refresh and logout handling |

| Provider auth errors | Any sustained errors | Verify APNs key, FCM credentials, environment |

| Send-to-open latency | Higher than baseline | Inspect queues, priority, TTL, provider status |

Escalation Packet

Include anonymized user ID, device platform, app version, permission state, token age, notification ID, provider response, queue timestamps, and recent deploys.

Tips for Best Results

  • 💡Separate accepted-by-provider from delivered-to-device; they are not the same metric.
  • 💡Track token age and permission state because many delivery issues are client lifecycle problems.
  • 💡Use minimal test payloads before debugging rich media or deep links.
  • 💡Never paste full device tokens, private keys, or sensitive message text into tickets.