Webhook Retry Logic

Success

Your endpoint should respond with 2xx within 10 seconds. Delivyr treats any 2xx response as a successful delivery and does not retry.

Retryable responses

Delivyr retries when the failure is likely transient:

StatusMeaning
408Request timeout from your endpoint
429Too many requests (rate limited)
500Internal server error
502Bad gateway
503Service unavailable
504Gateway timeout
522Delivyr timed out waiting for your endpoint (10 second limit)
523Delivyr could not connect (DNS failure, connection refused, TLS error, network reset)

Non-retryable responses

These failures are not retried. They usually mean the URL, authentication, or payload needs to be fixed:

StatusMeaning
400Bad request
401Unauthorized
403Forbidden
404Not found
405Method not allowed
410Gone
413Payload too large
422Unprocessable entity
Other 4xxClient error (except 408 and 429)
600Delivyr could not build the request (for example, a JSONata template error). No HTTP request was sent.

Retry schedule

Delivyr makes up to 5 attempts. (Note: The retry schedule will be expanded past 5 attempts in future updates.)

AttemptBase delayJitter
1— (initial delivery, not scheduled)
20 secondsnone
35 minutes (300s)0–60s subtracted
410 minutes (600s)0–60s subtracted
515 minutes (900s)0–60s subtracted

Timeouts

Each HTTP attempt waits up to 10 seconds for a complete response. If your endpoint does not respond in time, Delivyr records status 522 and retries according to the schedule above.

Logs

Logs are retained for 30 days.


Did this page help you?