SI Store Ops

Troubleshooting guide · updated 2026-10-10

Stripe webhook not updating your app? Separate delivery from processing

Check the destination response, raw-body signature verification and durable processing before replaying payment events.

Locate the failure boundary

In the account holder's Stripe event-destination view, identify one event and its delivery attempt. First distinguish no subscribed event, failed HTTP delivery and successful delivery followed by an incorrect application update. The last case needs application processing evidence; repeatedly changing the destination URL will not explain it.

  • Confirm test versus live mode and the intended destination.
  • Compare the subscribed event type with the event your application expects.
  • Keep a redacted response status and event ID; do not export customer payloads for an enquiry.

When signature verification fails

Stripe's verification needs the original request-body bytes, its signature header and the correct signing secret. Middleware that parses and reserialises JSON can change those bytes. A CLI-forwarded test event and a registered destination can have different signing secrets. The account holder should verify which secret is configured through approved secret settings, not paste it into a conversation.

  • Do not disable verification to make deliveries pass.
  • Check body-handling and environment configuration on a synthetic test route.
  • Treat a valid signature as origin verification, not as authorisation for every business action.

A successful response can still lose work

If the handler acknowledges before recording its update or queued work, a later crash can leave Stripe reporting delivery success while access is stale. Design for a durable handoff and idempotent processing. Conversely, a timeout after a completed action can lead to delivery retries; simply processing everything again can duplicate side effects.

  • Recognise already-processed event IDs and use safe business-operation identity.
  • Retrieve current relevant Stripe state rather than assuming event arrival order is chronological.
  • Log minimal processing outcomes separately from HTTP delivery outcomes.

Replay only with a defined purpose

Replaying a live event can repeat emails, provisioning or other financial side effects. First test duplicate handling with synthetic events and an isolated account. Then an authorised operator can agree which live events need recovery and how completion will be reconciled. Never replay the entire event history merely because one membership is wrong.

Sources and limits

  • Stripe: webhook delivery and verification Checked 2026-10-10.
    • Stripe documents delivery response diagnostics and retries.
    • Signature verification requires the raw request body and the correct endpoint secret.
    • Duplicates and unordered delivery must be handled.