From time-to-time, things don’t work out exactly as expected, in flows as in life! Using error handling, you can specify an action to run only after the failure of the previous action
Error Handling
In this example, I want to send a mobile notification if the previous action to add a new Dataverse row fails
Insert the action and select the ellipsis menu at the top right. Click ‘Configure run after’
This will display the options below. Select the action ‘has failed’ checkbox and click done
Now when the flow is run, this action will be triggered when, and only when, the ‘Add a new row’ action fails. All the following actions in the flow will execute normally
Error Handling for Flow Management
There are times where you may want to introduce error handling to define the actions that are subsequently executed in the flow
In the example below, a check is made on whether a user exists
If they do and the action is successful, the left branch executes and a task with their details is created and they are sent an email confirmation
If they don’t exist, the ‘Get a user profile (V2)’ action will fail and so the right branch executes. A task is created with their name only. Because they don’t have an account they cannot be sent an email confirmation
As you can see, when using parallel branches, a chain of actions can be run following an error, rather than just a single action
Alternatively, a scope action can be used to run multiple actions. Add the actions you want to run to a scope action, and then ‘Configure run after’ for the scope. When the condition is met all the actions in the scope will execute
Multiple ‘run after’ options can be selected. The ‘has timed out’ option can be useful to make sure all possibilities are covered. Time outs can happen if the call to the backend has not received a response after 120 seconds
Retries
By default, 4 retires are attempted, but up to 90 retries can be defined for each action. The retries will be attempted first before an action returns an error
I’ll be discussing retries and how to configure them in the next post