Skip to main content
Fix

Fix: duplicate Stripe webhook deliveries created duplicate customers

Webhook handler was not idempotent on retries. Now it is.

#stripe#payments#bugfix

Built on tools you trust

Vercel
Stripe
Cloudflare
GitHub
Linear
Slack
Resend
Sentry
Postgres
PostHog
Loom
Notion

← swipe · 12 tools →

What broke

Stripe occasionally delivers the same webhook event twice (by design — at-least-once delivery). Our handler was creating a fresh customer record on the second delivery, which surfaced as duplicate accounts in the admin dashboard.

Fix

Added a stripe_event_id table that we check before processing any webhook. If the event id has been seen, we ack and exit without re-running the side effects.

Why this matters more than it looks

A duplicate customer in the admin is annoying. A duplicate customer with a duplicate provisioned portal session and a duplicate confirmation email is a customer trust issue. Fixed before any customer hit it.

See the full changelog

Or peek at what we’re building next on the roadmap.