RevoplyAIDocs
Webhooks

Retries and the delivery log

What counts as a failed delivery, the retry schedule, when an endpoint is switched off, and how to read the log and resend.

What counts as delivered

A delivery succeeds when your endpoint answers with any 2xx status within 10 seconds. Everything else is a failure:

  • any other status, including redirects (3xx), which we do not follow;
  • no answer within 10 seconds;
  • a connection that cannot be made or breaks off, including DNS and TLS errors.

Retry schedule

A failed delivery is tried again after each of these intervals, counted from the attempt that failed:

AttemptAfter the previous attempt
1At once
21 minute
35 minutes
430 minutes
52 hours
66 hours
712 hours
824 hours

After the eighth failed attempt, about 45 hours after the first, the delivery is not delivered (dead-lettered) and is not tried again unless you resend it.

A 410 Gone answer is not retried: the delivery is dead-lettered at once and the endpoint is switched off (below). Tests are never retried.

When we switch an endpoint off

We switch an endpoint off, and email the account owner, when it:

  • answers 410 Gone, which says the address no longer exists; or
  • fails 100 deliveries in a row; or
  • has been failing for 3 days, however few events it received.

A successful delivery resets the count. Failed tests do not count.

While an endpoint is off, new events are not sent to it, now or later, and deliveries still waiting for a retry are dead-lettered when they come due. Fix your receiver, send it a test, then switch it back on: its failure count starts over.

The delivery log

Each endpoint's Delivery log (Integrations → Webhooks) lists its deliveries from the last 30 days, newest first. A delivery shows its status, the number of attempts, the time of the last and next attempt, the body we sent, the status your endpoint answered and the first 2 KB of its answer.

StatusMeaning
WaitingNot attempted yet
DeliveredYour endpoint answered 2xx
RetryingFailed; another attempt is scheduled
Not deliveredDead-lettered; only a resend sends it again

Why an attempt failed:

FailureMeaning
statusYour endpoint answered with a status outside 2xx.
timeoutNo answer within 10 seconds.
unreachableNo connection: check the address, DNS, TLS, and that it is reachable from the internet.
not_allowedThe address is not a public https:// address.
secret_unreadableWe could not read the endpoint's signing secret, so nothing was sent. Rotate it.
endpoint_offThe endpoint was switched off when the delivery came due.
not_entitledThe account was not on the Business plan when the delivery came due.
errorSomething failed on our side; the delivery is retried on the schedule.

When you contact support about a delivery, include its Delivery ID (the X-Revoply-Delivery header) and the event id.

Resend

Resend on a delivery sends the same body again at once, with a fresh signature. The envelope id is unchanged, so a receiver that deduplicates on it acts on the event once. If the resend fails, the retry schedule starts again from the beginning.

Resending needs the endpoint to be switched on and the Business plan. Tests and resends are limited to 10 a minute per account.

On this page