What’s the default retry interval for a Http action in a logic app? How do I specify an exponential retry interval? I performed a little experiment in Azure to find the answers.
First I created a Http triggered Azure function. The function gets the name node of the request body using data.name instead of data?name. Using data.name, I simply assume the name node is always present. Bad coding, but fit for my case. Next I created a logic app with a Http action calling the function. To enforce a Http 500 exception, I simply trigger the logic app without passing a message body. The Http 500 in turn, results in a retry which I’m after. Note that the retry interval must be specified in ISO8601 format, which is like: PTxxxH/M/S.
Here are the results:
Default retry:
This policy sends up to four retries at exponentially increasing intervals, which scale by 7.5 seconds but are capped between 5 and 45 seconds.
- Run 09:04:17
- Retry 09:04:17
- Retry 09:04:23
- Retry 09:04:34
- Retry 09:05:01
Retry 5 times, interval=5S, min interval=5S, max interval=2M
- Run 09:11:15
- Retry 09:11:15
- Retry 09:11:20
- Retry 09:11:31
- Retry 09:11:45
- Retry 09:12:14
Retry 8 times, interval 10S, min interval 5S, max interval 2M
- Run 09:16:35
- Retry 09:16:35
- Retry 09:16:40
- Retry 09:16:59
- Retry 09:17:25
- Retry 09:18:19
- Retry 09:20:19
- Retry 09:22:19
- Retry 09:24:19
Retry 5 times, interval=1M, min interval=30S, max interval=3M
- Run 09:27:49
- Retry 09:27:49
- Retry 09:28:22
- Retry 09:29:43
- Retry 09:32:44
- Retry 09:35:44
Resume:
- The first retry occurs immediately (both for exponential retry interval and fixed retry interval).
- The min interval must be between 00:00:05 and the interval specified.
- The second retry occurs between min interval and interval. It can be equal to min interval, but that doesn’t have to be the case.
- The max interval is the max retry interval. The retries don’t have to be capped before the max interval (as the default interval states).