Power Automate Error Handling: What to Do When Flows Fail

Flows don’t always go as planned—whether it’s a missing manager profile, a broken API, or an unexpected error, Power Automate flows can and will fail. The good news? You don’t have to leave it up to chance.

This video is part of my Pluralsight course Getting Started with Microsoft Power Automate, where we go deeper into building reliable, production‑ready flows. You can find the full course over here.

In this video, I’ll walk you through how to add error handling to your Power Automate flows so you stay in control when the unexpected happens. You’ll learn:

✅How to use Run After settings to trigger actions when a step fails
✅How to build a catch‑all error handler that notifies you immediately
✅How to use the Terminate action to properly mark a flow as failed.

This way, you can set up custom error notifications, keep processes running even when a step breaks, and make debugging much easier.

Watch my 100+ courses on Pluralsight

Video SummaryFlows fail—plan for it! Even the best-designed Power Automate flows can break due to missing inputs, unset managers, or API outages. Error handling gives you control over what happens when things go wrong.Default notifications aren’t enough. By default, you’ll get an email hours (or even a day) later, and it might list multiple failed flows. That’s not helpful for quick fixes.Use “Configure Run After” for smart branching. You can tell actions to run only if the previous step failed, timed out, or was skipped. This lets you send targeted notifications or even start alternative processes when something breaks.Two error-handling strategies:Action-level handling: If a specific step often fails (like “Get Manager”), add a parallel branch to send an error email or assign a fallback value.Catch-all handling: Add a final step that runs if anything above fails or is skipped, sends a notification with a direct link to the failed run, and optionally uses the Terminate action to mark the flow as failed.Pro tip: Use the Terminate action to make sure your flow status reflects reality. Without it, a flow might show as “Succeeded” even if something broke earlier.

For more information, read the transcript blog below, or watch the video above!

Transcript

While all of our demos ran smoothly, real-world flows can fail. Whether it’s a missing input, a manager not set in a profile, or simply an API being down, we need to make sure those errors are handled properly. Let’s learn how to handle errors in Power Automate flows.

As much as I like to think that all of the flows we create are error-proof, we can never plan for every single scenario, and sometimes our flows will hit something we simply didn’t expect. Error handling allows us to have more control over what happens when the unexpected occurs. It can be as simple as sending an email to somebody or as complicated as starting another process.

Before we learn what can be done, let’s take a look at the default setup. By default, when a flow fails, you will get an email—but that is not instant. It can take a couple of hours or even more than a day sometimes, and that email can include multiple flows. You also have access to the Power Automate Cloud Flows activity page, but it’s something you need to manually check, so it’s not as effective.

So what can we do? The answer is configuring the Run After functionality in Power Automate. There is a setting for each action where you can tell it to only run if the previous action is successful (which is the default), has timed out, is skipped, or has failed. This allows you to control what happens depending on whether a previous action succeeds or fails. For example, you can configure an email notification if a certain task fails or even if the entire flow fails.

As a nice tip, you can insert a link in that email that goes directly to the flow run. This is done using an expression that builds the URL. You have access to many variables and environment properties to make this work. Don’t worry—you don’t need to memorize it; you can copy it from the exercise files on Pluralsight.

Depending on how you implement your error-handling logic, if the last action in your flow succeeds, your flow will be marked as successful—even if something failed earlier. That means you handled the error correctly, but it can make finding failed runs harder. To address this, you can use the Terminate action in Power Automate, which allows you to select how the flow finishes and mark it as failed if needed.

Now, let’s look at two ways to manage potential errors inside flows. First, I prepared a simple flow: it’s manually triggered, gets an item from a project tasks list, retrieves the manager of the person who created the item, and sends an email.

The first method is for actions that often fail. For example, “Get Manager” is a common failure point because not every organization has managers set in Azure AD. If it fails, we can add a parallel branch that sends an email notification. Then, in the settings of that email action, we configure it to run only if “Get Manager” fails. This way, if the action succeeds, we send a success email; if it fails, we send an error email.

The second method is for when you don’t know where the flow might fail. For this, you can add a “catch-all” email at the end of the flow. Configure it to run only if the previous success email is skipped or failed. In that email, include the dynamic link to the failed run so you can quickly troubleshoot.

However, there’s one more step: if the last action (the catch-all email) succeeds, the flow will still show as successful. To fix this, add a Terminate action after the catch-all email and set it to “Failed.” This ensures the flow status reflects reality.

Finally, if everything works properly, the catch-all and terminate actions won’t run, and you’ll only get the success email. These two approaches—action-level handling and catch-all handling—give you flexibility in managing errors in Power Automate Cloud Flows.

 •  0 comments  •  flag
Share on Twitter
Published on August 19, 2025 05:22
No comments have been added yet.