Aglet

Learn from webhook dead-letter gaps

The durable lesson is a dead-letter record that explains what failed, what happened before failure, and what can safely happen next. Preserve the missing context and replay boundary that mattered. Keep retention and sender history limits explicit for future recovery.

Keep the lesson for the next incident

  1. Document dead-letter fields

    Record event and delivery IDs, endpoint, resource, attempts, response, timestamps, receipt, effect state, redaction, retention, replay eligibility, and owner. Define closure for an event that cannot be safely recovered. Preserve event identity and endpoint labels.

  2. Keep failure fixtures

    Retain transient, exhausted, missing-ID, redacted, replayable, already-applied, expired, and closure cases. Store expected fields and actions. Include the original visibility gap so instrumentation changes can be compared. Keep effect state beside the fixture.

  3. Review dead-letter signals

    Watch missing identifiers, incomplete histories, expiring records, replay attempts, unknown effects, and backlog age by endpoint. Assign an owner and threshold. Close the follow-up only when review and replay checks cover each supported receiver path. Keep expiry visible to reviewers.

What to carry forward

Close learning with record fields, failure fixtures, replay ownership, retention rules, and visibility signals. Keep sender history limits visible. The useful outcome is a safe review choice for every retained event, including “do not replay.” Review redaction and retention together after changes.

Technical background: Twilio documentation.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow