Relay: Retry Policies



For maximum flexibility you can tune the retry policies for each of your Destinations. A retry policy is the process that will take over if/when one of your webhook requests fail due to a network or destination server issue. Outlined below are the details of all the retry policies that are supported within the our system.

When Do We Retry?

We will retry anytime we do not receive what we consider a successful response from the destination server. Below is a list of HTTP status codes that we consider as successes/failures.

Response Retry
2xx
3xx
4xx
5xx
Timed Out


No Retries

This is the default policy that is set when creating a new Destination. The title really is self explanatory, but for any clarification required - the request will not be retried if the initial request to the Destination endpoint URL fails.

Linear

A linear retry policy will attempt to resend the request n number of times for a certain interval.

#####Formula The formula to calculate linear retries is as follows:

{interval} + {retry_count}

The minimum interval is 5 and the maximum retry count is 60 seconds.

#####Example Policy

If you set a policy to retry sending a request every 60 seconds for 10 attempts. That type of setup would be configured like this in the Destination settings.

Exponential Back Off

An exponential back off policy will increase the resend interval for each failure. This allows for a longer retry period while not attempting to deliver the request constantly.

#####Formula The formula to calculate exponential back off retries is as follows:

{interval} + {retry_count} ^ 4

The minimum interval is 5 and the maximum retry count is 25 seconds.

#####Example Policy

If you set the retry attempts to 10 and the interval to 60 seconds the rate of retry the form would look like the image below.

The actual intervals for retry would be calculated as follows.

Retry Count Next Retry Total Seconds Elapsed
1 61 61
2 76 137
3 141 278
4 361 594
5 685 1,279
6 1,356 2,635
7 2,461 5,096
8 4,156 9,252
9 6,621 15,873
10 10,060 25,933


In the above scenario the 10th attempt would be tried 7 hours and 12 minutes after the initial attempt was made. If after that last attempt the request still failed the webhook would be placed in a failed status. If you needed to resend the hook after that period you could still do so via the manual resend process.


Request Log Authentication Types