Establish what is happening
Capture the timing path
Record endpoint, event and delivery IDs, arrival, verification, durable receipt, response status, response time, and processing completion. Redact payload and secret. Note whether the timeout occurred before or after a durable receipt.
Compare fast and slow cases
Run a fast handler, slow downstream call, storage delay, and interruption fixture. Compare acknowledgement timing and receipt state. A long business operation should not be confused with an endpoint that never recorded the event.
Bound retry effects
Group timeouts by endpoint, dependency, handler revision, response class, event identity, and attempt. Separate sender retry after receipt from loss before receipt. Preserve pending work and side-effect count for each case.
What to carry forward
Triage ends with one timeout timeline, durable receipt boundary, retry identity, affected cohort, and evidence gap. Stop inline work that can repeat effects. Route receipt, downstream, and sender retry questions separately. Keep the event pending when receipt is uncertain before resuming delivery. Assign the next evidence owner.
Technical background: Stripe 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