Handle irrecoverable webhook eventsVersion bêta publique
Learn how to handle webhooks that fail to generate.
In very rare cases, Stripe can fail to generate the Event object. In these cases, the event is irrecoverable. Stripe can’t deliver it to your event destinations, nor publish it in the Dashboard or in the List Events API. Instead, Stripe creates a v2.core.health.event_generation_failure.resolved event to inform you that the Event generation failed. This guide explains how the alert works, and what you can do to recover from it.
Delivery of failed events
Stripe delivers v2. events to both Workbench and to any webhook endpoints you configure to listen for them.
Workbench
The v2. events appear in two places in Workbench:
Webhook endpoints
Follow the webhook setup guide to register a webhook endpoint that listens to v2. thin events. After you register the correct webhook endpoint, Stripe sends v2. events to it.
How to use the health event
When Stripe fails to generate an event, you can process the generated event notification to retrieve the v2. object, as shown in the following example.
{ "alert_id": "halert_61RFBMa6o6H87usts16RFBM10hSQlYfddqcFoEMR6CPY", "grouping_key": "_grouping_s8PgTvizbkORV9z5PhaJSvc4dUcAMmfRpEHKm4EeJ1glsQ5XMf", "impact": { "event_type": "payment_intent.requires_action", "related_object_id": "pi_1QA8PKDTvO5jCVb3TVDZP75a", "related_object": { "id": "pi_1QA8PKDTvO5jCVb3TVDZP75a", "type": "payment_intent", "url": "https://dashboard.stripe.com/payment_intents/pi_1QA8PKDTvO5jCVb3TVDZP75a" }, }, "resolved_at": "2025-10-30T16:05:44.000Z", "summary": "We have failed to create a notification for your Stripe account.", }
The example event provides the following information about the failure:
- Failed event: Stripe failed to generate a
payment_event.intent. requires_ action - Relevant object: The PaymentIntent that Stripe failed to generate the event for is
pi_.1QA8PKDTvO5jCVb3TVDZP75a - Timestamp: The event failed to generate at
2025-10-30T16:05:44..000Z - Account type: The
impactdoesn’t include thecontextproperty, so thepayment_event didn’t occur on a connected account.intent. requires_ action
If your integration relies on receiving webhooks for the payment_ event, this failure makes it out of sync with the Stripe state. To realign your integration after you receive a v2. webhook, poll the relevant API (in this case the Payment Intents API) to retrieve the related object: