You created a Power Automate flow to run automatically when a file is uploaded to a SharePoint document library, but the flow never starts. This happens even after you tested the flow manually and it worked. The cause is almost always a mismatch between the trigger configuration and the actual SharePoint library settings, such as a missing trigger condition or a library that uses a custom content type. This article explains the three most common reasons a SharePoint trigger fails on file upload and provides the exact steps to fix each one.
Key Takeaways: Fixing a Power Automate Trigger on File Upload
- Trigger condition in the flow editor: Add a condition that checks for the file property “IsFolder” equals false to exclude folder creation events.
- SharePoint library versioning settings: Enable “Require content approval” or adjust the trigger to fire on file modification instead of creation.
- OData filter query in the trigger: Remove or correct any OData filter that restricts the trigger to files with a specific extension or property.
Why Power Automate Does Not Trigger on File Upload
The most common reason is that Power Automate treats folder creation the same as file creation. When you upload a file to a SharePoint library, the system first creates a folder entry before writing the file content. The default trigger “When a file is created” fires on folder creation events, so your flow may start but then immediately fail or do nothing because the item is a folder, not a file. A second common cause is versioning settings. If your library requires content approval, the file is created in a draft state and the trigger may not fire until the file is approved. A third cause is an OData filter query that restricts the trigger to specific file types or properties that do not match the uploaded file.
Folder Creation vs File Creation in SharePoint Triggers
SharePoint treats folders and files similarly at the trigger level. When you drag a file into a library, SharePoint creates a folder item with the file name, then immediately replaces it with the actual file content. The trigger “When a file is created” catches the initial folder creation. If your flow does not filter out folders, it runs on the folder item and then stops because the folder item does not have file properties like file size or content type. Always add a trigger condition to check that the item is not a folder.
Content Approval and Versioning Interference
When a SharePoint library has content approval enabled, uploaded files start in a draft state. The trigger “When a file is created” fires when the draft is created, but the file content may not be fully available yet. If your flow tries to read the file content or metadata immediately, it may fail. In this case, use the trigger “When a file is created or modified” and add a condition to check the approval status. Alternatively, disable content approval for the library if approval is not required.
Steps to Fix the Power Automate Flow Trigger
Follow these steps in order. Test the flow after each step to identify the exact cause.
Step 1: Add a Trigger Condition to Exclude Folders
- Open the flow in the Power Automate editor
Go to make.powerautomate.com and sign in. Select My flows from the left menu, then click the flow that is not triggering. - Edit the trigger
Click the three dots on the trigger card labeled “When a file is created” or “When a file is created or modified.” Select Settings from the menu. - Add the trigger condition
In the Settings panel, find Trigger Conditions. Click Add. In the expression box, paste the following:@not(equals(triggerOutputs()?['body/{IsFolder}'], true)). This tells the flow to run only when the new item is not a folder. Click Done, then Save the flow.
Step 2: Check SharePoint Library Versioning and Approval
- Go to the SharePoint library settings
Open the SharePoint site in your browser. Navigate to the document library where you upload files. Click the gear icon in the top right and select Library settings. - Verify versioning settings
Under General settings, click Versioning settings. Look at the Content Approval section. If “Require content approval for sent items” is set to Yes, the library uses draft security. This can delay the trigger. For testing, set it to No. Click OK. - Change the trigger to fire on modification
If you cannot disable content approval, change your flow trigger from “When a file is created” to “When a file is created or modified.” Then add a condition in the flow that checks the approval status. Use the dynamic content “Approval Status” and check if it equals “Approved.” Only run the rest of the flow when the file is approved.
Step 3: Remove or Correct the OData Filter Query
- Open the trigger settings
In the Power Automate editor, click the trigger card. In the trigger parameters, look for a field called “Filter Query” or “OData Filter Query.” This is often hidden under “Show advanced options.” - Review the filter expression
If the filter query contains something likeFileLeafRef eq 'pdf'orFile_x0020_Type eq 'docx', it may be preventing the trigger from firing on files with different extensions. Remove the filter entirely to test. If you need a filter, use the correct OData syntax. For example, to trigger only on PDF files, useFile_x0020_Type eq 'pdf'. - Save and test
After removing or correcting the filter, save the flow. Upload a test file to the library and verify the flow starts within one minute.
If Power Automate Still Has Issues After the Main Fix
Flow Runs But Does Nothing After Triggering
If the flow triggers but the subsequent actions fail, check the file content type. Some flows expect a specific content type, like “Document.” If the uploaded file uses a custom content type, the dynamic content fields may be missing. Open the flow run history, click the failed action, and look for error messages about missing properties. Update the flow to use generic dynamic content like “File Identifier” instead of content-type-specific fields.
Flow Triggers on Every File Change, Not Just Upload
If you used the trigger “When a file is created or modified,” the flow runs on every edit, rename, or metadata change. To restrict it to only new files, add a trigger condition that checks the file creation date. Use the expression @equals(triggerOutputs()?['body/{Created}'], triggerOutputs()?['body/{Modified}']). This ensures the flow runs only when the created and modified timestamps are identical, which happens only on the first upload.
Flow Does Not Trigger for Files Added via Sync or Migration
Power Automate triggers based on SharePoint events. Files added through OneDrive sync or third-party migration tools may not generate the same SharePoint event as a manual upload through the browser. In this case, use the trigger “When a file is created or modified in a folder” and set the folder to the root of the library. Alternatively, use a scheduled flow that checks for new files every 15 minutes using the SharePoint REST API.
Trigger Types for SharePoint File Upload: Key Differences
| Item | When a file is created | When a file is created or modified |
|---|---|---|
| Description | Fires only when a new file is added to the library | Fires on new files and any subsequent edits or metadata changes |
| Folder events | Fires on folder creation — must use trigger condition to exclude folders | Fires on folder creation — must use trigger condition to exclude folders |
| Content approval | Fires on draft creation, may fail if file content is not ready | Fires on draft and on approval, gives more control with approval status check |
| Best use case | Simple workflows that process files immediately after upload | Workflows that require file approval or process changes over time |
You now know the three main causes of a Power Automate flow not triggering on file upload: folder events, content approval, and incorrect OData filters. Start by adding the trigger condition to exclude folders, then check your library versioning settings. If you use content approval, switch to the “created or modified” trigger and add an approval status check. As an advanced tip, always test with a simple text file first to isolate the issue from file type restrictions.