Custom Retry Strategy
Published Jan 31 2023 06:59 AM 1,362 Views
Microsoft

Overview

Intermittent failures and delays are events that might happen on a cloud environment, to overcome the occurrence of these events and minimize disruption of your logic app runs, a powerful built-in feature is available “retry policy”, but there are special cases where this retry policy won’t come into action and a custom retry strategy need to be part of your workflow to overcome these kinds of events. Such events are:

 

 

In this article, we will show how to implement this custom retry strategy as part of your workflow.

 

Steps

  1. Execute the required action.
  2. Check if success code or required data are returned:
    1. If yes, go to step 3.
    2. If no, execute the following steps inside until loop:
      1. Delay for X minutes; X delay time can be set as required depending on the failure cause.
      2. Execute the required action again (same as step 1).
      3. Check if success code or required data are returned:
        1. If yes, exit until loop and go to step 3.
        2. If no, go back to step I and execute same steps again.
  3. Proceed with remaining actions execution normally.

 

Sample Scenario

Suppose you are using the HTTP action to call a REST API, in case of success the call returns an HTTP status code 200, the call intermittently fails and does not return the HTTP status codes identified by the retry policy, so the retry policy is not activated and the action fails. Here comes the custom retry strategy into action.

 

Implementation

Use the following steps:

1. Add the HTTP action to call the targeted REST API.

talsaifi_1-1675174523394.png

2. Add a Control – Condition action to check if REST API call failed by checking the HTTP status code returned by the previous action if it is not equal to 200.

talsaifi_6-1675174167325.png

3. Inside the True branch, add a Control – Until action.

talsaifi_7-1675174202858.png

4. Inside the Control – Until action:

a. Add Schedule – Delay action and set the count to 1 and Unit to Minute.

talsaifi_8-1675174218797.png

b. Add another HTTP action to call the same targeted REST API again.

talsaifi_9-1675174228927.png

c. Check if the HTTP status code returned from previous step is equal to 200 to exit the loop.

talsaifi_10-1675174258530.png

d. Set the until limits as required, count and timeout.

talsaifi_11-1675174289226.png

 

The final workflow will look as follows:

talsaifi_0-1675176665870.png

4 Comments
Co-Authors
Version history
Last update:
‎Jan 31 2023 11:12 PM
Updated by: