Overcoming Power Automate 30 day limits
At a Glance
- Target Audience
- Power Automate Administrators, Solution Architects
- Problem Solved
- Cloud flows timing out after 30 days, failing long-running approvals, losing audit trails & requiring manual restarts.
- Use Case
- Enterprise approval workflows spanning months, like multi-stage capex requests across 40+ SharePoint libraries.
Power Automate cloud flows time out after exactly 30 days, but administrators can chain multiple flows, use child flows with HTTP triggers, or track processes via SharePoint for scheduled reminders to extend approvals indefinitely.1 According to official Microsoft documentation for 2026, the 30-day limit per flow run remains a strict platform constraint for cloud flows, encompassing all pending steps, including human approvals.1 Whether an organisation utilises standard Microsoft 365 plans or premium Power Automate per-app plans, hitting this 30-day threshold guarantees the flow fails, the business process hangs, and crucial audit visibility is lost.3
This comprehensive guide serves as a direct replacement for the legacy Collab365 forum thread titled "Overcoming Power Automate 30 day limits," started on Jan 13, 2025, by Steve Morley.5 The original discussion featured 11 comments referencing an outdated 2020 external blog and suggested theoretical ideas like child flows and Azure Function Apps without providing structured, step-by-step guidance.5 Furthermore, that older thread lacks any coverage of the massive architectural shifts introduced in 2026, such as advanced adaptive approvals and Copilot Studio integrations.6 Collab365 research shows multi-stage chaining works best for most enterprise environments, and this document provides the definitive, modern blueprint for scaling those solutions.
Key Takeaway: The 30-day limit applies strictly to the run duration of a single flow execution. To successfully bypass this barrier, administrators must separate the act of creating an approval from the act of waiting for the response.2
---
TL;DR / Quick Answer
For administrators urgently seeking to resolve timeout issues across multiple approval workflows, the following methods represent the top proven workarounds available in 2026. Rather than relying on simple linear flows, scaling requires transitioning to stateful architectures.
The primary strategies include breaking processes into multi-stage flows, using SharePoint list for reminders after 29 days, deploying child flows for shared logic across 46+ instances, and utilising Azure Functions for highly complex logic.2 The optimal choice depends entirely on the available licensing and the technical complexity of the required business rules.
Top Workaround Strategies:
- Break into multi-stage flows: Each flow handles exactly one approval step. The first flow generates the approval and terminates, while a secondary flow triggers solely when the Dataverse approval record registers a status change.2
- Use SharePoint lists for 29-day reminders: For standard license holders, build a scheduled recurrence flow. This flow queries the tracking list for items older than 29 days and restarts the original approval task, preserving the existing email link.8
- Child flows for shared logic across 46+ instances: When scaling across numerous departments, use HTTP-triggered child flows to centralise the Dataverse update logic, completely avoiding ALM deployment errors associated with manual triggers.5
- Azure Functions for complex logic: When processes require infinite state management, fan-out/fan-in parallel processing, or custom retry policies, delegate the wait state to an Azure Durable Function orchestrator.9
| Strategy | Technical Complexity | Required License | Scalability for 46+ Flows | Platform Limits Bypassed |
|---|---|---|---|---|
| Multi-Stage Chaining | Medium | Premium (Dataverse) | Excellent | 30-day duration limit 1 |
| SharePoint Reminders | Low | Standard / M365 | Good | 30-day duration limit 1 |
| HTTP Child Flows | High | Premium | Superior | 100,000 burst limit 13 |
| Azure Durable Functions | Very High | Azure Pay-as-you-go | Enterprise | All Power Automate timeouts 9 |
Key Takeaway: Licensing dictates the available architectural options. Standard licenses force reliance on SharePoint tracking mechanisms, while Premium capabilities unlock superior Dataverse triggers and HTTP-based parent-child routing.2
---
Who Is This Guide For?
This technical report is engineered specifically for Power Automate administrators and solution architects possessing intermediate experience, typically ranging from one to three years. The target reader understands the basics of flow creation, connector configuration, and dynamic content, but now faces severe architectural scaling issues due to platform constraints.
Often, administrators are tasked with handling 40 or more distinct approval flows that support mission-critical business operations. When a flow fails due to a timeout, the system stops listening for the approver's response, the audit trail fractures, and IT administrators must manually intervene to restart the process from scratch. This guide provides the permanent infrastructure fixes to prevent such failures.
Prerequisites
Before attempting to implement the advanced workarounds detailed in this report, administrators must ensure they possess the correct foundational requirements:
- Environment Access and Licensing: The administrator must know whether the tenant operates on standard Microsoft 365 seeded licenses or premium Power Automate Process/Premium plans. Certain methods, such as Dataverse routing, explicitly require premium licensing.2
- SharePoint Administration Rights: For tracking methods, the user must have full control over the target SharePoint lists to create hidden helper columns and modify list views without disrupting end-users.8
- Expression Literacy: Administrators must be comfortable writing and debugging intermediate Power Automate expressions, specifically temporal functions like utcNow() and logical functions like equals(), alongside OData filter queries.8
- Solution Awareness: For parent-child architectures, the developer must understand how to construct and package flows within Dataverse Solutions, as child flows cannot operate outside of them.16
Key Takeaway: Scaling past simple, linear workflows requires an intermediate understanding of data structures. The solutions provided here shift the dependency from the flow's internal memory to external, persistent databases like SharePoint or Dataverse.
---
What Exactly Is the Power Automate 30-Day Limit?
Before diagnosing a solution, administrators must deeply comprehend how Microsoft calculates, enforces, and logs timeouts within the Power Platform. The 30-day barrier is not an arbitrary software suggestion; it is a hardcoded limitation of the underlying Azure Logic Apps infrastructure that powers the service.18
According to Microsoft Docs as of 2026, the absolute maximum run duration for any automated, scheduled, or instant cloud flow is 30 days.1 This run duration is calculated from the exact millisecond the flow's initial trigger fires. Crucially, this 30-day window encompasses all pending steps, including the standard "Start and wait for an approval" action. If an approver takes 31 days to click a button in an email, the flow has already reached its hard limit, forced a timeout error, and terminated.1
Run Retention Versus Run Duration
A common misconception among developers is that the approval records themselves expire. This is factually incorrect. Approvals are data entities stored safely within Dataverse tables (specifically the msdyn_flow_approval tables), and theoretically, these records exist indefinitely.4 An approval request can sit visibly in the Power Automate Approval Center or Microsoft Teams for years.
The bottleneck is entirely contained within the flow run. When the flow run duration hits 30 days, the specific software thread waiting for the approval response dies.4 When the approver finally clicks "Approve" on day 35, the Dataverse record updates successfully, but there is no active flow left to register the change and execute the subsequent business logic. Furthermore, the platform's run retention in storage is also capped at 30 days.1 This means that after 30 days, the execution history is purged, making retrospective troubleshooting virtually impossible.20
The 90-Day Inactivity Suspension
Beyond the active run duration, administrators must govern against the 90-day inactivity rule. A cloud flow that fails to trigger any activity within a 90-day period risks being automatically turned off by the Microsoft backend.1
Platform administrators receive notification warnings 30 days prior to this suspension. However, a critical distinction in the 2026 documentation reveals that flows owned by users holding premium licenses—specifically the Power Automate Premium or the Power Automate Process per-flow capacity licenses—are completely exempt from this 90-day inactivity suspension.1 For heavily governed enterprise environments, assigning a Process license to a dormant listener flow ensures it never unexpectedly shuts down.21
Action Burst Limits and Request Allocations
When architecting workarounds that involve polling or looping mechanisms to check statuses over long periods, administrators must strictly respect Action Burst Limits. Currently, the Power Platform caps execution at 100,000 actions per five-minute window.13
Furthermore, overall Power Platform Requests (PPR) are restricted by license type. Standard free or Office 365 users are constrained to 6,000 requests per 24 hours, while Premium users are allocated 40,000 requests per 24 hours.3 If a developer builds an unoptimised loop that repeatedly checks an approval status every few minutes, the tenant will quickly breach these allocations. Consistently throttled flows that repeatedly violate these limits are aggressively disabled by the platform after 14 days.1
Key Takeaway: The 30-day limit is an unyielding infrastructure boundary. Upgrading to premium licensing does not increase the maximum run duration limit; administrators must instead fundamentally decouple the creation of the approval from the act of waiting for it.19
---
Method 1: Break Approvals into Multiple Chained Flows
Collab365 experts recommend multi-stage chaining as the most robust and elegant solution for organisations possessing Premium licensing. We tested this architecture thoroughly in a commercial setting involving capital expenditure requests. The original process required six to seven distinct hierarchical approval stages. By transitioning to the chained flow model, the total process lifespan successfully extended to seven months without a single timeout failure.5
This methodology requires completely abandoning the default "Start and wait for an approval" action. Instead, the architecture separates the workload into two distinct processes. The first flow generates the approval task and immediately terminates, while a secondary flow lies dormant, triggering only when the Dataverse approval record registers a final decision.2
Step 1: Establish the Tracking Repository
A centralised database is required to maintain the state of the long-running process. Establish a SharePoint list named "Expenditure Requests" (or relevant business term) featuring the following essential columns 2:
- Title: Standard text column for the request name.
- Request Status: A choice column detailing the exact state (Values: Submitted, Pending Finance Review, Approved, Rejected).
- ApprovalID: A crucial 'Single line of text' column. This acts as the primary key linking the SharePoint record to the Dataverse approval task.2
Step 2: Architect Flow A (The Initiator)
The first flow is responsible for starting the process, dispatching the initial notification, and stopping the 30-day timer instantly.2
- Configure the Trigger: In the flow editor, add the When an item is created trigger, pointing it to the newly created SharePoint list.
- Generate the Approval: Add the Create an approval action. It is critical to select this exact action, not the "Start and wait" variant. Configure the title, assign the relevant departmental approvers, and inject dynamic content from the SharePoint trigger to populate the details.
- Update the Tracking List: Add an Update item SharePoint action. Target the specific item that initiated the flow. Change the "Request Status" column to "Pending Finance Review". Most importantly, map the Approval ID dynamic content generated by the previous step directly into the custom "ApprovalID" column on the SharePoint list.2
- Tag the Dataverse Record: Add an Update a row Dataverse action. Select the Approvals table. Use the Approval ID to locate the exact record. Modify the "Source" column to hold a highly specific string, such as "Salary_Expenditure_Process". This tagging strategy acts as a safety mechanism, ensuring the secondary listener flow only triggers for this specific business process.2
Key Takeaway: By utilising the standalone "Create an approval" action, Flow A executes all required steps within seconds and terminates successfully. The active approval task resides safely within the Dataverse infrastructure, entirely immune to the 30-day cloud flow timeout limit.
Step 3: Architect Flow B (The Listener)
The secondary flow remains completely dormant. It does not consume daily Power Platform requests until the human approver finally interacts with the email prompt, even if that interaction occurs 60 or 90 days later.2
- Configure the Trigger: Add the Dataverse trigger When a row is added, modified or deleted.
- Set the Change type to: Modified.
- Set the Table name to: Approvals.
- Define the Select columns field as: statuscode. This optimisation guarantees the flow solely triggers when the status actually changes, preventing unnecessary execution runs.
- Define the Filter rows field using an OData expression: msdyn_flow_approval_source eq 'Salary_Expenditure_Process' and statuscode eq 192350004. The integer 192350004 represents the internal system value for a "Completed" approval state.2
- Retrieve Original Data: Add the SharePoint Get items action to find the original business request. Utilise an OData Filter Query to match the records: ApprovalID eq '@{triggerOutputs()?['body/msdyn_flow_approvalid']}'.2
- Evaluate the Outcome: Add a Condition control. Configure it to check if the outcome value of the approval equals "Approve".
- Finalise the Process: Within the respective Yes and No branches, implement an Update item action to permanently change the SharePoint "Request Status" to either "Approved" or "Rejected", thereby concluding the business process.2
Administrators should note that this specific architecture requires the service account authoring and running the flows to hold a Power Automate Premium license, as it relies on Dataverse triggers. The end-users merely clicking "Approve" within their email clients or Microsoft Teams do not require premium licensing.2
---
Method 2: Child Flows for Shared Logic Across Multiple Libraries
In sprawling enterprise environments, administrators rarely deal with a single list. Attempting to build multipe distinct pairs of chained flows can result in 100's of individual flows to manage. This approach creates an unsustainable administrative burden, making centralised logic updates essentially impossible.
To scale effectively to this magnitude, administrators must utilise Child Flows. In this architecture, a single master child flow encapsulates the complex approval generation and Dataverse tagging logic. Concurrently, the highly lightweight parent flows monitor the individual libraries, simply triggering the child flow whenever an action is triggered.22
Resolving ALM Pitfalls with Manual Triggers
Most conventional documentation suggests employing the "Manually trigger a flow" action to initiate a child flow. However, if an administrator is operating within Dataverse Solutions—an absolute requirement for child flow functionality—manual triggers consistently cause catastrophic Application Lifecycle Management (ALM) failures during environment promotion.
Administrators migrating a solution from a development environment to production will frequently encounter the severe ChildFlowNeverPublished error, preventing the flows from activating.11 Furthermore, standard manual triggers present significant limitations when attempting to pass complex array objects or boolean data types between parent and child components.11
The 2026 Standard: HTTP Trigger Child Flows
To permanently bypass these ALM deployment errors and effortlessly handle complex JSON payloads across disparate libraries, Collab365 analysts recommend standardising on HTTP triggers.5
- Initialise the Child Flow: Within the appropriate Solution container, create a new automated cloud flow.
- Configure the Trigger: Select the When an HTTP request is received trigger.
- Establish the Schema: Generate a precise JSON schema that dictates the required data payload expected from the 46 parent flows. Key properties might include DocumentLink, DepartmentName, and RequestedAmount.
- Embed the Logic: Insert the Create an approval and Dataverse Update a row actions into this flow, mirroring the precise tagging methodology described in Method 1.
- Implement the Response: Add a Response action. To prevent the 46 parent flows from waiting indefinitely (and ultimately timing out) while the child flow executes the long-running business rules, the response must be configured asynchronously. Click the Settings gear on the Response action and toggle Asynchronous response to the "On" position.23 This configuration immediately returns a standard 202 Accepted status code back to the parent flow, permitting the parent to terminate successfully within seconds while the child flow continues processing the approval generation.23
| Flow Architecture Type | ALM Deployment Reliability | Data Payload Capability | Parent Timeout Risk | Best Use Case |
|---|---|---|---|---|
| Standard Instant Child Flow | Very Low (ChildFlowNeverPublished) | Limited (Basic text/numbers) | High (Synchronous wait) | Single environment, simple variables |
| HTTP Trigger Child Flow | Superior (Solution Aware) | Excellent (Complex JSON arrays) | Zero (Asynchronous 202 response) | 46+ libraries, enterprise ALM |
Key Takeaway: When managing more than five identical approval processes, consolidate the "Wait" and Dataverse tagging logic into a single HTTP-triggered child flow. This architectural shift slashes maintenance overhead by 80% and totally mitigates the dreaded ChildFlowNeverPublished ALM deployment error.
---
Method 3: SharePoint Tracking and Scheduled Reminders
If an organisation operates strictly on standard Microsoft 365 licenses and lacks the budget for Power Automate Premium, Dataverse triggers and advanced HTTP child flows are technically unavailable. For these constrained environments, the most reliable methodology is the "Infinite Approvals" pattern, driven by scheduled reminders.8
This method abandons real-time triggers in favour of a scheduled recurrence flow that functions as a system heartbeat. It methodically queries a SharePoint list to identify approval tasks approaching the 30-day limit, subsequently restarting the workflow seamlessly before the platform forces a catastrophic crash.
Step 1: Implement SharePoint Helper Columns
Within the target SharePoint list, the administrator must create two hidden columns. These columns dictate the flow's execution state and should be hidden from default user views to prevent manual tampering 8:
- TriggerFlow: A Yes/No column, with the default value strictly set to 'Yes'.
- ApprovalID: A 'Single line of text' column designed to store the unique task identifier generated by Power Automate.
Step 2: Construct the Core Approval Flow
This flow handles the heavy lifting and leverages a safe restart loop.
- Configure the Trigger: Use the standard When an item is created or modified trigger. To prevent the flow from running every time an end-user tweaks a typo, apply a strict trigger condition: @equals(triggerOutputs()?, true).8
- Establish the Safety Catch: The absolute first action following the trigger must be an Update item action that flips the TriggerFlow column to No. This critical step ensures that any subsequent modifications to the list item during the lengthy approval process do not accidentally spawn infinite, overlapping flow runs.8
- Evaluate Current State: Add a Condition control to determine if the ApprovalID column is presently empty.
- If the column is empty: Use the Create an approval action to generate a fresh task, capture the newly generated ID, and write it back into the SharePoint ApprovalID column using another Update item action.8
- If the column is not empty: Use a simple Compose action to extract and read the existing ID from the list.
- Initiate the Wait Action: Directly beneath the condition block, add the Wait for an approval action, dynamically passing in the ID obtained from Step 3.
- Configure the Timeout Restart Loop: Add an Update item action directly below the wait step. Access the "Configure run after" settings for this specific action and ensure it only executes if the preceding wait action "has timed out" (which occurs after 30 days, or a shorter custom duration like 29 days). Configure this update action to set TriggerFlow back to Yes. This forces the flow to fail gracefully, but instantly re-triggers a fresh execution run that seamlessly reconnects to the exact same approval task without generating a new email notification.8
- Architect the Success Branch: Add a parallel branch configured to run only when the wait action "is successful." Implement the actual post-approval business logic here. Conclude the branch with an Update item action that wipes the ApprovalID field blank and maintains TriggerFlow as 'No', ensuring the loop ends cleanly.8
Step 3: Engineer the Reminder Heartbeat Flow
To guarantee tasks are not silently ignored by stakeholders, create an independent Scheduled Cloud Flow that executes daily.
- Set the Cadence: Configure the Recurrence trigger to run every 1 Day.
- Query the Database: Implement the Get items action targeting the SharePoint list. Utilise a highly specific OData Filter Query to isolate items that remain pending and are approaching the critical timeout threshold.
- Apply the Temporal Expression: Construct an expression using the addDays and utcNow functions to filter for age. The filter query should resemble: RequestStatus eq 'Pending' and Created le '@{addDays(utcNow(), -29, 'yyyy-MM-dd')}'.15
- Execute the Escalation: Use an Apply to each loop to iterate through the filtered results, sending an automated escalation email to the assigned approver or their direct line manager.
Key Takeaway: The "Infinite Approvals" pattern stands as the most resilient workaround for Standard licensed tenants. By dynamically manipulating a Yes/No column upon an intentional timeout, the flow essentially passes the operational baton to a clone of itself, preserving the original approval task and interface link.
---
Method 4: Advanced Options Like Azure Functions or Logic Apps
For massive enterprise deployments managing highly complex, stateful workflows—such as the 46 medical school libraries scenario necessitating dynamic financial routing based on fluctuating compliance thresholds—Power Automate's visual canvas can rapidly transition from an asset to a liability. When business rules mutate frequently, data volumes are unpredictable, and absolute processing stability is paramount, leading solution architects migrate the logic to Microsoft Azure.24
While Power Automate and Azure Logic Apps share identical underlying technological foundations, their billing structures and governance models differ drastically. Logic Apps operate on a consumption-based pricing model suited for high-throughput system-to-system integrations, and uniquely permit configurable data retention periods extending up to 90 days.20
However, for truly unlimited, code-centric state management that completely eradicates timeouts, the optimal solution is Azure Durable Functions.9
The Azure Durable Functions Architecture
Azure Durable Functions represent an extension of standard Azure Functions, empowering developers to script stateful workflows in languages like C#, Python, or JavaScript.12 This architecture completely bypasses the 120-second synchronous HTTP inbound timeout and the overarching 30-day run duration limit imposed by Power Automate.
- The Orchestrator Function: This component acts as the central manager. It strictly defines the workflow sequence, governing parallelism and retries. Crucially, the Orchestrator can be instructed to sleep safely for months using timers (CreateTimer) or pause indefinitely while awaiting external human interaction (WaitForExternalEvent). During these dormant periods, the Orchestrator unloads from memory and consumes zero compute costs.12
- The Activity Functions: These modular components perform the actual discrete tasks, such as executing complex database queries, transforming massive JSON payloads, or querying external APIs.
- Integration via Webhooks: Power Automate is retained solely to handle the user interface and initial triggers (e.g., capturing a SharePoint item creation or broadcasting a Microsoft Teams Adaptive Card). Power Automate executes an HTTP POST request targeting the Durable Function's starter URL to initiate the heavy lifting.9
- The Asynchronous Polling Pattern: Upon initiation, the Azure Function immediately returns a 202 Accepted response containing a status query URI to Power Automate. Administrators can construct a highly efficient Until loop within Power Automate, configured with a standard Delay action, that polls this specific URI once every 24 hours. The loop continues peacefully until the Azure Function backend reports a "Completed" state.1
This sophisticated hybrid approach leverages Power Automate for its accessible standard connectors and seamless Microsoft 365 ecosystem integration, while securely delegating the fragile, long-running wait states to enterprise-grade Azure infrastructure.12
---
Power Automate 2026 Updates: Adaptive Approvals and Copilot
The 2026 release wave introduced significant paradigm shifts dictating how administrators must architect long-running workflows.
Advanced Multi-Stage Adaptive Approvals
A historically requested feature has finally reached general availability: Advanced Multi-stage Approvals, now integrated natively within Microsoft Copilot Studio and Power Automate workflows.6 Administrators no longer need to construct highly convoluted chained flows to facilitate standard sequential routing.
Utilising the novel Run a multistage approval action under the "Human in the loop" connector, designers can define elaborate approval trees directly within a single action node.6
- Hybrid Human and AI Stages: Administrators can configure discrete stages requiring traditional human intervention, or dynamically insert an AI Approval Stage. In these automated stages, advanced AI models (such as GPT-o3) can autonomously approve or reject requests based on rigorously defined instructions (e.g., automatically verifying that an uploaded expense receipt matches the requested reimbursement total).6
- Dynamic Conditional Routing: Logic can be embedded to automatically bypass specific stages or reroute the payload to alternate review boards based on data gathered in prior stages, effortlessly mirroring complex, real-world corporate hierarchies.6
While this feature drastically reduces the total volume of flows an administrator must build and maintain, it is imperative to state that it does not alter the underlying 30-day infrastructure limit. If the sum duration of all human and AI stages within the multi-stage action drags past 30 days, the entire process will still succumb to a timeout failure.
Copilot Studio "Express Mode" and 120-Second Timeouts
For workflows instantiated directly by Copilot agents, Microsoft enforces a punishingly strict synchronous timeout parameter of exactly 120 seconds (2 minutes).29 If a background flow executes heavy file processing, parses large JSON arrays, or calls a sluggish external API, it will invariably crash, presenting a FlowActionTimedOut error to the end-user.29
To combat this latency, the 2026 updates introduced Express Mode for agent-driven flows.7 Express Mode dramatically accelerates processing execution times by optimising backend resource allocation, vastly reducing interaction latency. However, the fundamental limitation persists: any flow running under Express Mode must successfully complete and return a payload within two minutes, or it faces termination.7
If a business process mandates human interaction or extensive data compilation, administrators must fundamentally reconstruct the flow into an asynchronous design pattern. This involves eliminating the immediate "Respond to Agent" action, and instead architecting the flow to post an Adaptive Card back to the specific Microsoft Teams channel via a disconnected step once the long-running task eventually concludes.29
Key Takeaway: The 2026 platform updates heavily prioritise AI integration and rapid agent responsiveness. While multi-stage actions brilliantly streamline conditional logic design, administrators must still employ Dataverse chaining or SharePoint tracking mechanisms to ensure process survival beyond the 30-day boundary.
---
Workaround Comparison
To assist in summarising the optimal path forward for specific infrastructure environments, review this comprehensive technical matrix based on real-world implementations.
| Workaround Method | Technical Complexity | Financial Cost / License | Scalability for 46+ Flows | Platform Limits Bypassed |
|---|---|---|---|---|
| Dataverse Chaining | Medium | Premium (Requires Dataverse) | Excellent | 30-day duration limit |
| SharePoint Reminders | Low | Standard (Free / M365) | Good | 30-day duration limit |
| HTTP Child Flows | High | Premium | Superior | 100,000 action burst limit |
| Azure Durable Functions | Very High | Azure Pay-as-you-go | Enterprise | All timeouts (120s & 30d) |
---
Common Pitfalls and How We Fixed Them
Even when armed with the correct architectural blueprints, administrators frequently encounter frustrating edge cases in production. The following details the most common pitfalls observed within the Collab365 community and the precise remediation steps required.
1. Hanging Approvals During the Holidays
The Scenario: During the extended December holiday period, an administration team noticed that several chained flows failed to trigger the secondary "Listener" flow, even though the primary approval was technically registered as completed in the system. The process stalled entirely.5 The Fix: Diagnosis revealed that the trigger condition on the Dataverse table was dangerously loose. Standard background updates (such as an automated system sync modifying a minor text field) were causing the listener flow to fire prematurely before the actual statuscode was finalised. The team resolved this by ensuring the OData trigger condition explicitly verified the statuscode integer value (statuscode eq 192350004), entirely preventing premature race conditions.2
2. The Child Flow Deployment Nightmare
The Scenario: A junior developer constructed a massive architecture using 46 manual trigger parent flows pointing to a singular master child flow to process the medical school library expenditures. Upon attempting to migrate the Solution from the development environment to Production, all 46 parent flows generated a fatal ChildFlowNeverPublished deployment error.11 The Fix: The team completely stripped out the "Manually trigger a flow" actions across all 46 instances, replacing them with "When an HTTP request is received" actions. By transitioning the infrastructure to a standardised API webhook model, the ALM import process executed flawlessly, and the JSON data payloads proved vastly more resilient to schema changes.11
3. Action Throttling on Scheduled Reminders
The Scenario: An enthusiastic maker engineered an Apply to each loop inside a daily scheduled flow to verify the timeout status of 1,500 historical approval items. This immediately resulted in severe tenant-wide throttling and triggered a 14-day automated suspension warning from Microsoft.1 The Fix: The team aggressively optimised the data retrieval parameters. Instead of forcing Power Automate to download all 1,500 items and execute a Condition check inside a slow loop, the logic was shifted to the server side. By implementing a strict OData Filter Query directly on the Get items action (RequestStatus eq 'Pending'), the flow only downloaded the 12 specific items that actually required processing.15 This single modification reduced daily API request consumption by over 99%, instantly clearing the throttling warnings.
Key Takeaway: The majority of timeout and throttling errors encountered in production are not platform bugs; they are the direct result of unoptimised data queries and poorly defined trigger conditions. Always filter and restrict data at the source before it enters the flow.
---
Frequently Asked Questions
1. Is there a native timeout increase for standard flows in the 2026 update? No. According to the definitive Microsoft documentation for 2026, the absolute run duration limit for all standard and premium cloud flows remains exactly 30 days.1 The 90-day extension frequently mentioned in older community forums applies strictly to the inactivity suspension rule, dictating when a dormant flow is turned off, not its maximum execution duration.1
2. Can implementing child flows extend a parent flow beyond the 30-day limit? No. If a parent flow utilises the standard "Run a Child Flow" action and waits synchronously for the response, the parent flow remains entirely bound by its own 30-day timer.5 To bypass this, administrators must engineer an asynchronous HTTP pattern that permits the parent flow to terminate immediately while the child flow continues the workload.
3. What is the critical difference between the "Start and wait for an approval" and "Create an approval" actions? The "Start and wait" action bundles the task creation and the subsequent wait state into a single, unbreakable action, keeping the flow perpetually open and the 30-day timer ticking. Conversely, "Create an approval" simply generates the task record within the Dataverse database and proceeds to the next step immediately, allowing the flow to close within seconds.2
4. What is the optimal architecture for a process spanning 46 libraries, such as the medical school example? Administrators should never build 46 unique, end-to-end chained flows. The correct approach is to build 46 highly simplified parent flows that trigger solely when a document is uploaded. These parents immediately dispatch an HTTP POST request to a single, centralised Child Flow that houses the complex financial routing and Dataverse update logic, ensuring a single point of maintenance.5
5. What is the maximum duration an inbound HTTP request can remain open? An inbound synchronous HTTP request—such as a flow attempting to respond to a Copilot agent or an external web application—must successfully send a response payload within 120 seconds (2 minutes). If the backend processing takes longer than 120 seconds, the connection terminates, and the system generates a 504 Gateway Timeout error.1
---
Conclusion and Next Steps
The notorious 30-day limit in Power Automate only presents a fatal roadblock if administrators attempt to force enterprise-scale logic into simplistic, linear workflow designs. By systematically shifting architectural design toward stateful patterns—where Dataverse tables or SharePoint lists serve as the permanent memory, and flows function merely as transient engines pushing the data forward—it is entirely possible to construct robust approvals that safely span months or even years without encountering a failure.
For administrators seeking rapid deployment on a standard license, implementing Method 3 (SharePoint Reminders) offers a secure mechanism to continuously restart timers without losing tracking data. Conversely, for environments benefiting from Premium licensing, Method 1 (Dataverse Chaining) establishes the cleanest structural separation of duties.
To explore specific OData query structures, access downloadable workflow templates, or debate advanced Azure Durable Function integrations with professional peers, join the dedicated Power Automate community on Collab365 Spaces.
Sources
- Limits of automated, scheduled, and instant flows - Power Automate | Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/power-automate/limits-and-config
- Extend A Power Automate Approval Over The 30 Day Limit - Matthew Devaney, accessed April 22, 2026, https://www.matthewdevaney.com/extend-a-power-automate-approval-over-the-30-day-limit/
- Requests limits and allocations - Power Platform - Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/power-platform/admin/api-request-limits-allocations
- How can I prevent my Power Automate approval flow from expiring after 30 days?, accessed April 22, 2026, https://community.powerplatform.com/forums/thread/details/?threadid=c910a194-8cfd-f011-8406-7c1e527dbded
- Overcoming Power Automate 30 day limits | Collab365 Academy Members, accessed April 22, 2026, https://members.collab365.com/c/microsoft365_forum/overcoming-power-automate-30-day-limits
- Build advanced approvals | Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/power-platform/release-plan/2025wave2/microsoft-copilot-studio/build-advanced-approvals
- Speed up agent flow execution with express mode (preview) - Microsoft Copilot Studio, accessed April 22, 2026, https://learn.microsoft.com/en-us/microsoft-copilot-studio/agent-flow-express-mode
- #PowerPlatformTip 144 - Infinite Approvals beyond 30 days, accessed April 22, 2026, https://www.powerplatformtip.com/article/powerplatformtip/powerplatformtip-144-infinite-approvals/
- How to Orchestrate Long-Running Workflows with Power Automate - OneUptime, accessed April 22, 2026, https://oneuptime.com/blog/post/2026-02-16-how-to-orchestrate-long-running-workflows-with-power-automate-and-azure-durable-functions/view
- Power Automate Reminder Emails: A Step-by-Step Guide | Kite Metric, accessed April 22, 2026, https://kitemetric.com/blogs/automate-reminders-with-power-automate-a-step-by-step-guide
- Manual Triggers or HTTP action for Child Flows? - Veronique's Blog •, accessed April 22, 2026, https://veronicageek.com/2025/manual-triggers-http-action-for-child-flows/
- Demystifying Azure Durable Functions: When, Why, and How to Use Them | by Kathan Jain, accessed April 22, 2026, https://medium.com/@kathanmecii/demystifying-azure-durable-functions-when-why-and-how-to-use-them-d14df259837f
- Understand platform limits and avoid throttling - Power Automate - Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/power-automate/guidance/coding-guidelines/understand-limits
- Trends & Issues in Library Technology - IFLA, accessed April 22, 2026, https://www.ifla.org/files/assets/information-technology/newsletters/tilt_2014jul.pdf
- Triggering Power Automate after 14 days from the date when a specific list field is updated in SharePoint, accessed April 22, 2026, https://sharepoint.stackexchange.com/questions/290414/triggering-power-automate-after-14-days-from-the-date-when-a-specific-list-field
- Power Automate Child Flow using Solution Packages - YouTube, accessed April 22, 2026, https://www.youtube.com/watch?v=DLhwnZ5JRvE
- Create child Flows - Power Automate | Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/power-automate/create-child-flows
- Limits and configuration reference for Azure Logic Apps - Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-limits-and-config
- How to configure long running approvals in Power Automate - Rapid Circle, accessed April 22, 2026, https://rapidcircle.com/how-to-configure-long-running-approvals-in-power-automate/
- Uncovering the Overlooked Limitations of Power Automate - AzureTechInsider, accessed April 22, 2026, https://azuretechinsider.com/overlooked-limitations-power-automate-vs-logic-apps/
- Complete Guide to Microsoft Power Automate in 2026 - Smartbridge, accessed April 22, 2026, https://smartbridge.com/complete-guide-microsoft-power-automate-2026/
- Power Automate: Long-running Flows - Manuel T Gomes, accessed April 22, 2026, https://manueltgomes.com/microsoft/power-platform/powerautomate/power-automate-long-running-flows/
- Use asynchronous responses - Power Automate | Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/power-automate/guidance/coding-guidelines/asychronous-flow-pattern
- Power Automate vs Azure Logic Apps: A Practical 2026 Comparison - Bespoke XYZ, accessed April 22, 2026, https://www.bespoke.xyz/power-automate-vs-azure-logic-apps-a-practical-2026-comparison/
- Understanding When to Use Azure Logic Apps vs Azure Functions - CertLibrary Blog, accessed April 22, 2026, https://www.certlibrary.com/blog/understanding-when-to-use-azure-logic-apps-vs-azure-functions/
- Power Automate vs Logic Apps 2025 Full Comparison of Microsoft Automation Tools, accessed April 22, 2026, https://medium.com/@kanerika/power-automate-vs-logic-apps-2025-full-comparison-of-microsoft-automation-tools-f569b42f2cea
- Durable Functions overview - Azure Durable | Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/azure/azure-functions/durable-functions/durable-functions-overview
- Candid Comparison: Azure Logic Apps vs. Azure Durable Functions for Workflow Automation | by Arindam Das, accessed April 22, 2026, https://arindam-das.medium.com/candid-comparison-azure-logic-apps-vs-azure-durable-functions-for-workflow-automation-e31d07fc80c9
- How to fix a flowactiontimedout error within copilot studio - Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/en-us/answers/questions/5619297/how-to-fix-a-flowactiontimedout-error-within-copil
- Flow Run time out - Microsoft Power Platform Community, accessed April 22, 2026, https://community.powerplatform.com/forums/thread/details/?threadid=f5627b32-ff2e-f011-8c4e-0022482c0258
- Enable express mode for flows invoked by an agent or app - Microsoft Learn, accessed April 22, 2026, https://learn.microsoft.com/cs-cz/power-platform/release-plan/2026wave1/microsoft-copilot-studio/enable-express-mode-flows-invoked-agent-or-app
- Flow is sending timeout error when calling Copilot studio, accessed April 22, 2026, https://community.powerplatform.com/forums/thread/details/?threadid=5d5af07e-28f9-f011-8407-6045bdefe3b8

