Power Automate imposes limits on the number of actions a flow can execute in a single run. If a flow exceeds this limit, it fails with the error:
“The number of actions in the flow exceeds the allowed limit.”
This guide explains:
Why the action limit error occurs.
How to check and monitor action usage in a flow.
How to optimize your flow to stay within the limits.
Step 1: Understanding Action Limits in Power Automate
1.1. Maximum Allowed Actions per Flow Run
Plan Type | Max Actions per Flow Run |
---|---|
Microsoft 365 Plan (Standard) | 500 |
Per-User Plan / Per-Flow Plan | 5000 |
Power Automate Process Plan | Higher Limits |
Azure Logic Apps (Alternative) | No Fixed Limit (Depends on Pricing) |
- If a flow contains more actions than the allowed limit, it fails automatically.
- The limit applies to every flow run, not just the design.
Step 2: Identifying the Issue
2.1. Check Flow Run History for Action Count
- Open Power Automate (https://make.powerautomate.com).
- Click on My Flows → Select the affected flow.
- Go to Run History → Open a failed run.
- Look for the error message: kotlinCopyEdit
The number of actions in this flow exceeds the allowed limit.
2.2. Count Actions in Flow Designer
- Open the flow in edit mode.
- Count the total number of actions (each step counts).
- Identify which sections have the highest action usage (e.g., loops, conditions, approvals).
Step 3: Resolving the Issue
3.1. Reduce the Number of Actions in the Flow
If your flow contains too many actions, remove redundant steps.
Example: Consolidate Multiple Conditions into One
Inefficient:
Condition 1: If Status = "Approved", then do X
Condition 2: If Status = "Pending", then do Y
Condition 3: If Status = "Rejected", then do Z
Optimized:
Use a single "Switch" statement to handle multiple conditions in one step.
This reduces multiple conditions into one action, improving efficiency.
3.2. Reduce the Use of “Apply to Each” Loops
Loops drastically increase action count when iterating through large datasets.
Example: Retrieve and Process Only Necessary Data
Inefficient:
- The flow retrieves 10,000 records and loops through each one.
Optimized:
- Filter records before looping using a Query or OData filter.
- Set a Top Count limit (e.g.,
500
) to process fewer records.
3.3. Use “Scope” Actions to Group Multiple Steps
Scopes help organize multiple actions and reduce complexity.
Example: Group Related Actions Under a Single Scope
- Add a Scope action.
- Move related actions inside the Scope.
- Handle errors at the scope level instead of adding error handling in every action.
This reduces redundant checks and simplifies the flow.
3.4. Minimize Unnecessary Data Operations
Inefficient:
- Fetching all records and then filtering inside the flow.
Optimized:
- Use Filter Queries in connectors (e.g., SharePoint, SQL, Dataverse) to fetch only required records.
Example: SharePoint List Query with Filter Query
Filter Query: Status eq 'Active'
This avoids unnecessary loops, reducing action count.
3.5. Use Expressions Instead of Multiple Actions
If a flow uses multiple actions to manipulate data, replace them with Power Automate expressions.
Example: Format a Date Without Extra Actions
Inefficient:
- “Convert Time Zone” action
- “Format Date” action
Optimized:
Use a single expression:
formatDateTime(utcNow(), 'yyyy-MM-dd')
This replaces two actions with one expression.
3.6. Replace Recurring Actions with a Scheduled Flow
If a flow triggers too often (e.g., every minute), consider reducing the frequency.
Example: Instead of Running Every Minute, Use Hourly Schedule
Inefficient:
- A flow runs every minute, adding 1440 executions per day.
Optimized:
- Change the trigger to run hourly (
24 runs per day
).
3.7. Break a Single Flow into Multiple Flows
If a flow performs too many tasks, split it into smaller flows.
Example: Split Data Processing into Two Flows
- Flow 1: Fetches and stores records in SharePoint or Dataverse.
- Flow 2: Processes those records on a schedule.
This reduces action count per flow, preventing errors.
3.8. Use Power Automate Premium Features (Child Flows)
- Use “Run a Child Flow” action to move some actions into a separate flow.
- The main flow calls the child flow, keeping it within limits.
Requires Power Automate Premium, but allows better scalability.
3.9. Use Azure Logic Apps for Large Workflows
If Power Automate’s action limits are too restrictive, consider using Azure Logic Apps, which allow:
✔ More actions per workflow
✔ Longer execution times
✔ Higher scalability
- Open Azure Portal → Go to Logic Apps.
- Create a Logic App for large-scale automation.
- Trigger Power Automate flows from Logic Apps.
This allows complex workflows beyond Power Automate’s limits.
Step 4: Preventing Future Action Limit Issues
4.1. Best Practices to Reduce Action Count
Use fewer conditions – Switch to “Switch” instead of multiple “If” conditions.
Reduce loop iterations – Process only necessary records.
Use expressions instead of extra actions – Format text/dates in a single step.
Break large flows into multiple flows – Keep each flow within limits.
Use child flows – Offload logic into separate smaller flows.
Monitor flow usage in Power Platform Admin Center – Track action count trends.
4.2. Set Up Alerts for High Action Usage
- Open Power Platform Admin Center.
- Set up alerts for flows approaching 500 actions (Microsoft 365) or 5000 actions (Premium).
This helps detect excessive actions before failures occur