What counts as a failure
A delivery attempt fails if the endpoint:- returns a non-
2xxstatus, - returns a
3xxredirect (redirects are not followed), - times out (default 10s, configurable 1–30s), or
- can’t be reached.
Backoff schedule
Failed attempts are retried with exponential backoff until they succeed or reach the endpoint’smaxAttempts (default 5, max 10):
After the final attempt, the delivery is marked dead and surfaced in the
console so you can inspect the response and retry manually.
Delivery status
Each email’s overall delivery status rolls up its attempts:Building a robust handler
Be idempotent
Be idempotent
A delivery may arrive more than once (a retry can fire after your handler
succeeded but before the response reached us). De-duplicate on the email
id or the X-Inboundr-Delivery-Id header.Acknowledge quickly
Acknowledge quickly
Return
200 as soon as you’ve safely stored the event, then do heavy work
asynchronously. Long processing risks a timeout, which triggers a retry.Verify before trusting
Verify before trusting
Always verify the signature before acting
on a payload.