Last verified 2026-07-14
stripe webhook delivered twice double ship
Webhook retries that double-ship are an idempotency bug, not a Stripe outage. Key fulfillment on payment intent, replay twice, confirm one side effect.
The actual problem
Idempotency gaps cause duplicate fulfillments when Stripe retries webhooks.
Do this
- Key fulfillment on payment_intent / charge id, not event id alone.
- Log and ignore already-processed event ids.
- Re-test with Stripe CLI resend of the same event.
- Audit last week’s double-ship tickets against webhook logs.
Tools for this job
- Stripe CLI
Resend/replay webhook tests
- Cashkiln checklist
Ops preflight before scale
Start with the free operator checks → cashkiln.com/leaks.
Related intents
Run the operator leak checklist
Cashkiln’s free checklist covers six cash leaks operators miss before scaling ads — use it, then deepen with Tillkiln or Netkiln as needed.
Also from Cashkiln
- Free leak checklist — six operator checks
- Netkiln sample — client-ready revenue-health page from a payouts CSV ($19 clean unlock)
- Tillkiln — scan checkout leaks before you buy more ads
Deep-dive report — $29
Self-serve checklist expansion for this query family. PayPal Checkout. No call.