Retries and Deliveries

How failed deliveries are retried, when a webhook is paused, and how to inspect and replay deliveries.

Retries

A delivery fails when your endpoint answers with anything other than 2xx, takes longer than 10 seconds, or cannot be reached. A failed delivery is tried up to five times in all, with the wait doubling each time, starting at five seconds.

Each attempt is signed with a fresh timestamp, and every attempt of one event shares the same X-RankDebug-Delivery id.

Automatic pausing

Every failed attempt adds to the webhook's failure count, and a successful one resets it to zero. After 10 failed attempts in a row, the webhook is paused and receives nothing until it is enabled again. Enable it on the Webhooks page, or set active to true through the API; this also resets the failure count.

Delivery log

Every attempt is logged for 30 days with its outcome, the status your endpoint returned, up to 500 characters of its response with secrets redacted, how long it took, and when the next retry is due. Read it on the webhook in the dashboard or through the deliveries endpoint. One delivery's detail includes the exact body that was sent.

Redelivering

To send a delivery again, for example after fixing your endpoint, use the Redeliver action on that delivery in the dashboard, or the redeliver endpoint. It sends the identical body under the same X-RankDebug-Delivery id, so X-RankDebug-Signature matches the original. Only the timestamp and X-RankDebug-Signature-256 are new. A redelivery is a single attempt with no automatic retries, logged as the next attempt of that delivery. A paused webhook must be enabled first.

Related documentation
  • Webhooks

    Receive RankDebug events at your own HTTPS endpoint, signed so you can trust them.

  • Events

    The events a webhook can subscribe to, when they fire, and what their data contains.

  • Verification

    Check that a webhook delivery came from RankDebug and has not been replayed.

  • Webhooks

    Create and manage webhook endpoints, send test events, and read and replay deliveries.

Was this helpful?

On this page