A flow not triggering means one of a fairly small set of things went wrong — and Run History is almost always the fastest way to narrow it down before guessing at fixes.
1. Check Run History first
Before changing anything, go to My Flows, click the flow, and look at Run History. This tells you immediately whether the flow is firing but failing partway through (which is a different problem from not triggering at all), or genuinely not running at all. If runs appear in history but show as failed, skip to the connection errors article — the trigger is working, something downstream is broken. If no runs appear at all, continue here.
2. Confirm the flow is turned on
It sounds obvious but it's the most commonly missed thing — flows can be turned off manually or automatically if they fail repeatedly. In My Flows, check the flow's status. If it shows as Off, click it and turn it on. Power Automate sometimes disables flows after a certain number of consecutive failures without notifying you clearly.
3. Check the trigger condition
If you added a trigger condition (a filter that only fires the flow when certain criteria are met), that condition may be too strict or incorrectly written — meaning the trigger fires internally but is silently dropped before the flow runs. Open the trigger step, look for a Trigger Conditions field, and verify the logic. A common mistake is writing a condition that's never actually true with your real data.
Tip: to test whether the trigger is firing at all, temporarily remove the trigger condition and run the flow manually via the Test button. If it works without the condition, your condition expression is the problem — not the trigger itself.
4. Check the connection is still valid
Triggers rely on connections to external services (SharePoint, Outlook, Forms, etc.). If that connection has expired — which happens after password changes, MFA resets, or token expiry — the trigger silently stops firing. Go to Data > Connections in Power Automate and look for any connections showing a warning or error icon. Fix them by clicking the connection and re-authorizing.
5. Check if the flow owner's account is disabled
If the person who originally created the flow has left the company or had their account disabled, the trigger registration often breaks even if the flow ownership has been transferred. The trigger itself can remain registered under the original owner's account in Dataverse, and disabling that account kills it. The fix is to stop the flow completely, then restart it — this forces Power Automate to re-register the trigger under the current owner's account.
6. Check for a DLP policy block
In business environments, administrators can create Data Loss Prevention (DLP) policies that block certain connector combinations. If your flow uses a connector that violates a DLP policy, it will fail to trigger without a clear error message to the flow owner. Check with your IT admin if you suspect this — they can check the DLP policy configuration in the Power Platform Admin Center.
7. SharePoint triggers specifically
SharePoint-triggered flows (when an item is created or modified) have a few unique failure modes worth knowing:
- The list or column was renamed or deleted — SharePoint triggers bind to specific list columns by internal ID. If you renamed the column the trigger was watching, it may have broken silently.
- Too many changes at once — if a bulk import created hundreds of items simultaneously, SharePoint's trigger can miss some events. This is a known limitation, not a bug you can easily fix.
- The flow owner doesn't have access to the SharePoint site — the trigger runs under the flow owner's permissions. If they lost access to the site, the trigger stops working.
8. HTTP / webhook trigger URL changed
As of November 30, 2025, flows with HTTP triggers or Teams Webhook triggers that used logic.azure.com URLs were migrated to new URLs as part of Microsoft's infrastructure upgrade. If your flow has an HTTP trigger and stopped working around that time, the old URL is no longer valid — you need to copy the new trigger URL from the flow's trigger card and update any external systems or parent flows that call it.
The bottom line
Run History is always the first stop — it tells you whether "not triggering" is actually "triggering but failing," which completely changes where you look. If no runs appear at all, check flow status, connection health, and trigger conditions in that order before assuming something more complex is wrong.