Aglet

Learn from webhook status contract drift

The durable lesson is a response contract connecting validation, receipt, status, sender retry, and side effect. Preserve the status mapping and consequence that exposed the drift. Keep sender-specific behavior and framework defaults visible as separate boundaries for each supported route.

Keep the lesson for the next incident

  1. Document response meanings

    Record validation, duplicate, transient, permanent, authorization, exception, receipt timing, status, retry, review, and effect for each handler path. Define unknown status handling and owner. Identify which layer translates an uncaught exception into a response and whether that translation preserves the intended delivery disposition.

  2. Keep status fixtures

    Retain malformed, duplicate, dependency, authorization, exception, recovery, restart, and success cases with expected status and effect. Include the original mapping failure for future framework changes. Preserve the intended retry decision in each fixture.

  3. Review policy signals

    Watch response classes, retries after receipt, invalid-event retries, lost receipts, duplicate effects, and unknown branches by endpoint. Assign an owner and threshold. Close the follow-up only when shared handlers run the matrix.

What to carry forward

Close learning with response meanings, fixtures, receipt ownership, and retry signals. Keep sender limits explicit. The useful outcome is a deliberate status for every event state, not a blanket success or failure code. Have handler and delivery owners review any status change against the retained event matrix before adopting a different recovery policy.

Technical background: Zendesk developer 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