Blocked File Types
How MigrationFox handles a file that the destination refuses to accept. Modern SharePoint Online and OneDrive no longer keep a static list of blocked extensions, so MigrationFox does not skip any file type in advance. Every file gets an upload attempt. A file is marked Skipped only when the destination actually refuses it, and the file row tells you why.
Core principle
The destination decides what it accepts, not a hard-coded extension list inside the migration tool. Microsoft’s own guidance for SharePoint in Microsoft 365 is that there are “currently no known types of files that cannot be added” (Microsoft Support). Older blocked-extension lists from SharePoint Server do not apply to SharePoint Online.
What can still make SharePoint or OneDrive refuse a file
Even without a static blocklist, a SharePoint Online or OneDrive destination can still refuse or empty a file. These are the causes MigrationFox recognizes:
| Cause | What happens | What to do |
|---|---|---|
| Custom Scripts disabled on the destination site | Script-bearing types (.aspx .asmx .ascx .master .jar .swf .htc .xsf .xap) can be rejected. Custom Scripts are off by default on Microsoft 365 Group-connected sites. | Retry first. If it persists, a SharePoint admin can allow Custom Scripts on that site: Set-SPOSite -Identity <siteUrl> -DenyAddAndCustomizePages 0 |
| Anti-malware scanning | The upload is accepted but the destination reports the file as 0 bytes. | Retry first. If the same file keeps landing empty, check anti-malware results in your Microsoft 365 admin tools. |
| DLP, IRM or other tenant policies | The destination refuses the upload, or empties it, based on content or labels. | Review the policy with your Microsoft 365 admin. |
| Invalid names or long paths | Characters SharePoint does not allow, reserved names (CON, NUL, …) and leading or trailing spaces and periods. | Handled automatically: MigrationFox replaces or adjusts these before upload. The pre-flight review warns about paths near SharePoint’s 400-character limit. |
How MigrationFox detects a refused file
Detection happens at upload time, because that is the only reliable source of truth:
- Upload refused. When SharePoint or OneDrive returns an HTTP 409 rejection that mentions a blocked, restricted or illegal file, the file is marked Skipped with the reason Destination tenant policy refused. If the extension is one of the Custom Scripts types above, the message says so and includes the
Set-SPOSitefix. - Upload emptied. When the destination reports 0 bytes after upload, the file is marked Skipped with the same reason. The message suggests a retry first, because most empty uploads are transient, and lists possible tenant-policy causes if it persists. MigrationFox does not claim a cause it cannot prove.
Skipped is not the same as Failed. A refused file is not retried over and over inside the same run, because retrying cannot change a policy decision.
Where you see it
- Job page: the Skipped count, and a Skipped breakdown card that groups skipped files by reason. Click view files to see each skipped file with its full message.
- CSV report: the CSV download on the job page lists every file with its Status and Error Message columns, so you can hand the list to a SharePoint admin.
Skip reasons and their labels
| Label in the Skipped breakdown | Meaning |
|---|---|
| Destination tenant policy refused | The destination refused the upload or reported it as 0 bytes (see above). |
| Source platform refused (executable / abusive content) | The source would not let us download the file. Most often Google Drive refusing an executable. See Executable file handling. |
| File size over destination limit | The file is larger than the destination’s per-file limit, or larger than the Max File Size you set on the job. |
| File type not supported by destination | A source-only type with no export format, such as Google Forms, Sites or Apps Script. |
| Path or filename invalid for destination | The name or path could not be made valid for the destination. |
| Source delivered partial bytes after retries | The source kept sending fewer bytes than it declared, even after retries. |
| Already at destination | The file is already at the destination: unchanged since the last copy (Sync changes), or left alone by Skip existing. |
Per-file size limits MigrationFox checks before upload
Files over the destination’s limit are skipped before upload instead of failing partway through. The pre-flight review on the job page also lists them after the scan.
| Destination | Per-file limit used |
|---|---|
| SharePoint / OneDrive | 250 GB |
| Dropbox | 50 GB (conservative; some plans allow more) |
| Box | 50 GB (conservative; some plans allow more) |
| Google Drive | 5 TB |
| Amazon S3 / Azure Blob | 5 TB |
| File share / SFTP | No platform check (depends on the server) |
Catch it before cutover
Migration Rehearsal (a read-only scan of a SharePoint site) raises a warning when it finds files with extensions such as .exe, .dll, .bat, .cmd, .ps1, .vbs, .aspx, .asmx or .ashx. Treat it as a heads-up to check your destination’s policies, not as a prediction that those files will be refused.
Exception options
Three ways to handle files the destination refuses. Pick based on how many files there are and whether you control the destination.
Exclude file types on the job
If the files are not worth migrating (stale installers, build output, leftover scripts), add them to the Exclude File Types field in the migration wizard. Type a pattern such as *.exe, or click a preset (for example Executables adds *.exe, *.dll, *.msi, *.bat).
Current limitation
Today, exclusions are applied while scanning file share (SMB) sources, and only extension patterns of the form *.ext are used. For cloud sources the field is not applied yet. For those, narrow the selected folders or use Max File Size instead.
Allow Custom Scripts or review tenant policies
If the files are legitimate content people need at the destination, a SharePoint admin can allow Custom Scripts on the destination site (for script-bearing types), or review the DLP, IRM or anti-malware policy that refused the file. Then re-run the migration. Files already at the destination are not copied again when the job is set to skip existing files.
Store a handful of files elsewhere
If only a few files are refused and you don’t want to change the destination’s policies, store them somewhere without these rules (for example Azure Blob or a private S3 bucket) and link to them from SharePoint. The CSV report is your list of what to move.
What MigrationFox does and does not do
- Does not pre-skip by extension. Every file gets an upload attempt. Only a real refusal produces a skip.
- Separates source and destination refusals. They have different labels in the Skipped breakdown, so you can act on each.
- Does not change extensions to get past a policy. It only replaces characters the destination does not allow in names.
- Checks size limits before upload, so an oversized file is skipped right away instead of failing after a long upload.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Skipped breakdown shows Destination tenant policy refused | The destination refused the upload or reported it as 0 bytes. | Open the skipped files and read the message. Retry the migration first. If the same files are refused again, follow the cause in the message (Custom Scripts, anti-malware, DLP or IRM). |
.aspx or .master files are refused |
Custom Scripts are disabled on the destination site. | Have a SharePoint admin run Set-SPOSite -Identity <siteUrl> -DenyAddAndCustomizePages 0 for that site, then re-run. |
| Executables show Source platform refused, not destination | Google Drive refused the download. This is a source-side rule, separate from SharePoint. | See Executable file handling. |
| Files show File size over destination limit | The file is larger than the destination’s per-file limit, or larger than the job’s Max File Size. | Pick a destination with a higher limit, split the file, or raise or clear Max File Size. |
| Excluded types were still copied from a cloud source | Exclude File Types is applied to file share sources only today. | Narrow the folder selection, or delete the files at the destination afterwards. |
Skipped is not failed
A migration that lists some files as refused by the destination can still be a complete migration with a clear exception list. Retrying the same refused file without changing the destination’s settings usually produces the same skip.
Related
- Executable file handling:
.exe,.dlland Google Drive’s download policy - Skip junk files: the OS files MigrationFox leaves out on purpose
- SharePoint provisioning: destination site creation that runs before uploads begin