pingdotgg / pingdotgg/t3code

Unify mobile notification delivery diagnostics across APNs and FCM

Open
#10,863 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

The cross-platform audit of #10416 found that APNs has delivery-attempt records and queue tracing, while FCM primarily records the delivered aggregate and uses generic delivery results. This makes equivalent failures harder to investigate on Android.

Follow-up scope:

  • Define shared delivery outcomes for queued, sent, skipped, invalid-token, and retryable failures while preserving existing wire compatibility.
  • Give FCM queue processing the same trace context and safe device/environment/job annotations as APNs.
  • Exercise equivalent retry, preference, freshness, and token-rotation cases through both adapters.

The current Android review fixes preserve immediate transport causes. This issue tracks the broader diagnostics work separately from shipping the Android adapter.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with PR #10416 and compare APNs delivery-attempt records and queue tracing with FCM's aggregate and generic delivery results. Trace both adapters' queue processing and the retry, preference, freshness, and token-rotation cases; done means shared outcomes, equivalent safe annotations, and preserved wire compatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
firebase, typescript
Domain
backend, mobile, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.