Delivery flow
Retry schedule
Inngest retries with exponential backoff. 6 attempts span approximately 31 hours total.One function per delivery
Each(event, endpoint) pair is a separate Inngest function invocation. If you have 3 webhook endpoints subscribed to session.paid, a single payment spawns 3 independent webhookDeliver runs. A failure on one endpoint doesn’t affect delivery to the others.
Delivery headers
Every POST includes:Timeout
Your server must respond within 30 seconds. If it doesn’t, the delivery is counted as failed and retried.Manual replay
From the dashboard under Webhooks → Deliveries, you can see every delivery attempt and replay any of them — including successful ones. This is useful for:- Replaying a delivery your handler accidentally acknowledged without processing.
- Replaying events after you fix a bug in your webhook handler.
- Debugging delivery failures.
Viewing delivery history via API
Event deduplication
Your webhook handler may receive the same event more than once (e.g. if your server returned a 200 but Inngest didn’t receive the response). Always make your handler idempotent — use theevent.id field to deduplicate: