Power Automate flows are designed to automate business processes efficiently, but sometimes they encounter execution limits. A “Timeout expired” error occurs when a flow or a specific action takes longer than the allowed execution time. This can lead to failures in critical workflows, especially when dealing with long-running operations such as looping through large datasets, calling APIs, or waiting for external system responses.
This guide explores the causes, limitations, and step-by-step solutions to fix timeout errors in Power Automate flows.
Step 1: Understanding Power Automate Timeout Limits
Power Automate has execution time restrictions based on the flow type:
1. Flow Duration Limits
Flow Type | Execution Time Limit |
---|---|
Cloud Flows (Standard) | 30 days (but actions may time out sooner) |
Approval Flows | 30 days (before automatic cancellation) |
Child Flows | No defined timeout, but parent flow may timeout |
HTTP Actions | Default: 120 seconds (can be extended to 10 minutes) |
2. API Request & Response Limits
- HTTP requests in flows have a 120-second default timeout and can be extended to 10 minutes.
- Some connectors like SQL, Dataverse, and SharePoint have their own execution limits.
- Loops (such as Apply to Each or Do Until) may timeout if iterating through large datasets.
Step 2: Identifying the Root Cause
Where is the Timeout Occurring?
- Check the Flow Run History
- Open Power Automate → Go to My flows → Select the failing flow → Click Run history.
- Look for the exact action that timed out.
- Review Action Details
- Expand the failed action to see error details.
- Look for messages like “Request timed out”, “Loop exceeded time limit”, or “Execution exceeded 30 days”.
Step 3: Common Causes & Fixes
1. Long-Running Loops (Apply to Each, Do Until)
- Cause: Loops processing thousands of items may exceed execution limits.
- Fix:
✅ Use parallelization:- Click on “Apply to Each” → Enable Concurrency Control (set degree >1).
✅ Filter data before looping using OData queries.
✅ Use batch processing instead of processing one record at a time.
- Click on “Apply to Each” → Enable Concurrency Control (set degree >1).
2. HTTP Requests Taking Too Long
- Cause: An API call takes longer than the 120-second default timeout.
- Fix:
✅ Increase timeout settings (for Premium HTTP connector).
✅ Optimize API response (e.g., request only needed data).
✅ Use Azure Functions or Logic Apps for long-running API calls.
3. SQL Queries or SharePoint Actions Taking Too Long
- Cause: Queries retrieving too many records or inefficient filtering.
- Fix:
✅ Use Delegation-friendly functions (e.g.,Filter()
instead ofSearch()
).
✅ Apply pagination for large data sets.
✅ Optimize SharePoint or SQL indexes for faster retrieval.
4. Approval Flows Expiring After 30 Days
- Cause: If no action is taken within 30 days, Power Automate cancels the approval.
- Fix:
✅ Use timeout properties: Set a custom timeout using"timeout": "P29D"
(ISO 8601 format).
✅ Send reminder emails before expiration.
✅ If needed, restart the approval process within a new flow.
5. Power Automate Limits on Large Files
- Cause: Processing large files in OneDrive, SharePoint, or Blob Storage may timeout.
- Fix:
✅ Use chunking to split files into smaller parts.
✅ Store files in Azure Blob Storage for more efficient handling.
✅ Compress files before processing.
Step 4: Optimizing Flow Execution
1. Reduce Execution Time with Filtering
- Instead of retrieving all records, use OData queries to filter only relevant data.
Example (SharePoint Get Items action): textCopyEditFilter query: Status eq 'Pending'
- Instead of looping through 1000 records, pre-filter to only process necessary ones.
2. Use Parallel Processing
- Enable “Concurrency Control” in loops to process multiple items at once.
- Be careful with data consistency (avoid conflicts when writing back data).
3. Offload Long Tasks to Azure Logic Apps
- For actions exceeding 10 minutes, use Logic Apps, which allow longer executions.
- Trigger the flow from Power Automate and let Logic Apps handle the heavy lifting.
4. Split Large Workflows into Child Flows
- If a flow is too complex, split it into multiple smaller flows.
- Call the child flow using “Run a Child Flow” action to improve execution time.
Step 5: Test & Monitor Flow Performance
1. Test with Smaller Data Sets
- Run the flow with a limited dataset to verify it completes successfully.
- Gradually increase data size to see when timeouts occur.
2. Monitor Flow Metrics
- Check flow analytics for execution time and bottlenecks.
- Set up alerts for failed runs and long execution times.