A cloud flow creates a Dataverse row, calls an external API, and updates the row. If any of these steps fails or times out, the flow must log the error to a table and notify an administrator, similar to try/catch in code. How should the developer structure the flow?
Select an answer to reveal the explanation.
Short Explanation
Think of two buckets: Try holds the real work, and Catch only tips over when Try spills. Configure run after on Catch for has failed and has timed out, and you've got try/catch without writing code. The trap is leaving Catch on is successful, which runs it exactly when nothing went wrong.
Full Explanation
Power Automate implements structured error handling with Scope actions and the configure run after setting. The steps that can fail go inside a scope that acts as the Try block. A second scope, the Catch block, follows it and is configured to run after the Try scope has failed or has timed out; it can also include is skipped where appropriate. A scope's status reflects the outcome of the actions it contains, so any failure inside Try causes Catch to run, where the flow writes the error to a log table and notifies an administrator. Leaving Catch on is successful inverts the logic: it runs only when Try succeeds and is skipped exactly when an error needs handling. A Condition after each step cannot catch the failure, because when a step fails the following actions are skipped by default unless their run after settings change, and checking status codes on every action is repetitive and incomplete. Setting retry policies to None just makes transient failures fail sooner; there is no implicit flow-level catch handler that runs as a result. Exam caveat: after Catch handles the error, the run normally reports success unless a Terminate action sets a failed status. Operational check: force the external API step to fail in a test run and confirm that Catch executes and Try shows as failed in run history.