My Power Automate flow run timed out: what it means and how to fix it
Short answer: a flow run can last at most 30 days. If one action times out sooner, raise its Timeout setting or send less data through it. For a run that waits longer than 30 days, split the work into two flows. Open the failed run and read the error name to see which timeout you have.
Two different timeouts
Microsoft's limits page lists the run duration limit as 30 days and says: "Run duration is calculated using a run's start time and includes flows with pending steps like approvals. After 30 days, any pending steps time out."
A single action has its own limit. Microsoft's error reference describes ActionTimedOut this way: "A single action exceeded its configured timeout and was canceled."
Microsoft's error reference describes OperationTimedOut this way: "A long-running operation (webhook wait, approval, HTTP polling) exceeded the maximum wait time."
So the first job is to find out which one you have. The fix is different for each.
The limits in one place
- Run duration: 30 days. Microsoft's limits page says "After 30 days, any pending steps time out."
- Outbound synchronous request: 120 seconds (2 minutes). Microsoft's tip for longer calls: "use an asynchronous polling pattern or an "Until" loop."
- Inbound request: 120 seconds (2 minutes).
- Outbound asynchronous request: "Configurable up to 30 days".
- HTTP action default: Microsoft's error reference names a "default 100-second timeout" for an HTTP action calling a slow external API.
- Until loop iterations: default 60, maximum 5,000.
Step 1. Find the error name
- Open https://make.powerautomate.com.
- Select My flows, then select your flow.
- In the run history, select the run that failed.
- Find the step with the red mark. Open it and read the error. Look for the words ActionTimedOut or OperationTimedOut.
Exact names on your screen may differ.
If you see a timeout message while you test a flow that runs a long time, read this line from Microsoft's limits page: "If you test a cloud flow that runs for longer than 10 minutes, you might get a timeout message in Power Automate, even though the flow continues to run in the background. If this happens, reopen the view to receive the current status." Check the run history before you change anything.
What the two errors can come from
Microsoft's error reference lists these causes for ActionTimedOut:
- "HTTP action calling a slow external API with default 100-second timeout"
- "Wait for an approval" with an expiration that passed
- Large file upload or download over a slow connection
- "Dataverse query returning too many rows without pagination"
It lists these causes for OperationTimedOut:
- "HTTP webhook action waiting for a callback that never came"
- "Approval action without an expiration, hitting the 30-day flow run limit"
- A "Delay until" action set to a date beyond the 30-day run duration limit
- "External service went down and never sent the expected response"
Match your failed step to the list. That tells you where to start.
Fix A. Raise the Timeout on one slow action
Use this when the error is ActionTimedOut.
- Open your flow for edit.
- Open the slow action and select Settings.
- Find the Timeout field. Microsoft's error reference says to increase the Timeout value as an "ISO 8601 duration, for example, PT5M for 5 minutes."
- Save and run the flow again.
Our advice, not a Microsoft rule: raise the value a little at a time. A very large value hides the real problem, which may be a slow service or too much data.
For an HTTP action, Microsoft's error reference says to check "if the external API has a long-running operation pattern (poll with retry-after)." Microsoft's limits page also gives this tip for long calls: "For longer-running operations, use an asynchronous polling pattern or an "Until" loop."
Fix A2. Long API call that needs more than 2 minutes
Microsoft's limits page lists an outbound synchronous request at 120 seconds and says to use "an asynchronous polling pattern or an "Until" loop" for longer work. Here is how that looks in a flow:
- Send the first request to the service. A service can answer at once with a job ID and a status address.
- Add an Until loop. Inside it, add a Delay of a short, fixed length, then call the status address.
- Set the loop to end when the status says finished. The limits page lists the Until loop at 60 iterations by default and 5,000 at most, so set a count that fits the job.
- After the loop, read the result.
Our advice, not a Microsoft rule: keep the Delay long enough that the loop makes few calls, so you do not trade a timeout for throttling. See "Power Automate 429 too many requests".
Fix B. Shorten a wait
Pick this path when OperationTimedOut points at a Delay, a Delay until or an approval.
- Look at the date or duration on the wait. A "Delay until" date that falls beyond day 30 of the run cannot finish, so the run is cut off first.
- Choose a shorter pause that matches how fast a person can really answer. Our advice, not a Microsoft rule: a 7-day pause followed by a reminder is a sensible first try.
- On an approval, give it an expiration and a branch for the case where nobody answers. The approval guide covers this: "Power Automate approval fails after 30 days waiting".
- Put a notice step in the no-answer branch so a person learns the wait ended empty.
Microsoft's error reference gives this advice for webhook and approval actions: "Always set explicit timeouts on webhook and approval actions."
Fix C. Split a process that needs more than 30 days
A few jobs need months, such as a yearly contract review with a nudge each month. Microsoft's error reference gives two ideas:
- "Break long waits into shorter segments using a loop with daily checks."
- "For the 30-day run limit, redesign long-running processes to use a "relay" pattern: End the current run and start a new one with state passed via Dataverse or a file."
It adds: "Cloud flows have a maximum run duration of 30 days. For processes that take longer, split them into multiple flow runs with shared state."
Here is how I would apply that to a SharePoint list. Let the list hold the memory, and let a short run do one day of work. Give each row a date for its next action. A scheduled flow starts once a day, asks the list for rows whose date is today or earlier, handles those rows, and writes a fresh date back. No run stays open for more than a few minutes. Our advice, not a Microsoft rule: this layout is easier to inspect when something breaks, because each day shows up as its own small run.
To prepare the list:
- Open the SharePoint list that holds your items.
- Add a Date and time column called Next check.
If the daily flow itself does not start, read "Scheduled flow did not run at the set time".
Fix D. Split a long loop
A loop over thousands of rows keeps one run busy for a long time. Microsoft's limits page says an "apply to each" loop can process "5,000 for Low, 100,000 for all others" array items. It says: "To filter larger arrays, you can use the query action."
Microsoft's limits page also says the loop runs one item at a time unless you change it: "1 is the default limit. You can change the default to a value between 1 and 50 inclusively." Treat that as something to try on a copy first, not as a cure for every flow.
Ways to shrink the work:
- Ask SharePoint for fewer rows before the loop starts. In Get items, fill the Filter Query box, for example Status eq '1 Active'. The text must match the choice value exactly, number included.
- Check Top Count. Microsoft says the default item limit is 100, and: "If you are working with large lists, you can increase this limit up to the list view threshold limit of 5,000." Turn Pagination on if you need more. The full story is in "Power Automate Get items stops at 100 rows: how to get them all".
- If the set is still big, cut it into slices by date, such as one run per created month.
- Microsoft's error reference suggests: "Consider using Select or Filter array actions instead of Apply to Each when you only need to transform or filter data."
Fix E. Make the flow report its own timeout
Silence is the worst result. Give the flow a way to speak up.
- Click the plus sign below the action that may time out and add a new action.
- Open the three-dot menu on that new action and choose Configure run after.
- Microsoft's error reference names the option "Configure run after > has timed out" for timeout branches. Tick has timed out.
- Inside the branch, send the flow owner an email that names the row by its Title and links to the item.
- Add an Update item step that writes a status you can filter by, such as 4 Timed out. Type the full choice text, number included. If Title is required, also fill Title from dynamic content. If the flow starts on "When an item is created or modified", this update starts it again. Add a Yes/No column named Alert sent with its default value set to No, check that it is No before the email, and set it to Yes in this same Update item. See "Power Automate flow keeps running itself over and over".
Flow not running at all
This is not a timeout, but it looks like one when nothing shows up. Microsoft's page "Fix connection failures in cloud flows" gives this order:
- Open the flow details page and check the status in the top-right corner. Microsoft lists On, Off and Suspended. For Suspended it says: "Open the run history to find the failing action, fix the root cause, then turn the flow back on."
- Open the run history. If there are no recent runs, check the trigger. For a scheduled trigger, Microsoft says to check the timezone. For an automated trigger, create a test item or send a test email and wait.
- Check the trigger condition, if the trigger has one.
- Microsoft's limits page says "A cloud flow that isn't triggered within a 90 day period might be turned off", with an exception for flows owned by users with premium licenses or assigned capacity licenses.
For a scheduled flow that did not fire, read "Scheduled flow did not run at the set time".
Test the fix
- Set the Timeout or the wait to a short value, for example PT5M.
- Start the flow with one test row.
- Confirm the timeout branch runs and the email arrives.
- Set the real value back and run it again with a normal row.
What to avoid
- Do not set an action Timeout to a huge value to make an error go away.
- Do not leave a wait, webhook or approval with no limit of your own.
- Do not keep one run open for months. Split the work into short runs.
- Do not loop over every row in a large list. Filter first.
- Do not let a timeout end with no message to a person.
- Do not change three settings at once. Change one, then test.
Honest limits
A timeout setting does not repair the slow thing behind it. It only makes the failure show up where you can see it. Numbers and menu labels move over time, so read Microsoft's limits page again before you build on a figure. Ask your admin about license and plan limits.
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
How long can a Power Automate flow run?
Microsoft's limits page lists run duration as 30 days: "After 30 days, any pending steps time out." The count starts when the run starts.
What is the difference between ActionTimedOut and OperationTimedOut?
Microsoft's error reference says ActionTimedOut means "A single action exceeded its configured timeout and was canceled." It says OperationTimedOut means "A long-running operation (webhook wait, approval, HTTP polling) exceeded the maximum wait time."
Power Automate flow run timed out, please try again: what does it mean?
Microsoft's limits page says: "If you test a cloud flow that runs for longer than 10 minutes, you might get a timeout message in Power Automate, even though the flow continues to run in the background." Reopen the view and read the run history before you change anything.
Why does the HTTP action in Power Automate time out at 2 minutes?
Microsoft's limits page lists an outbound synchronous request at 120 seconds (2 minutes) and says to use "an asynchronous polling pattern or an "Until" loop" for longer work.
Why is my Power Automate flow not running?
Check that the flow is On and not Suspended, then check that the trigger fired. Microsoft's limits page also says a flow with no trigger activity in 90 days might be turned off.
Sources
- Microsoft Learn, Limits of automated, scheduled, and instant flows
- Microsoft Learn, Cloud flow error code reference
- Microsoft Learn, Fix connection failures in cloud flows
- Microsoft Learn, In-depth analysis into 'Get items' and 'Get files' SharePoint actions for flows in Power Automate