Can't Upload Large Files or Folders to SharePoint? The Size, Path and Storage Limits That Stop Uploads

SharePoint uploads fail when a file is over 250 GB, the full path would be over 400 characters, a name has invalid characters, or the site or tenant has run out of storage. Browser uploads of large folders also stall on unreliable connections; use the OneDrive sync app or Migration Manager for those. Check a folder before you upload with the PowerShell script below, and find what is using a site's storage with the free SharePoint Essentials Toolkit.

Published:

Last updated: 2026-10-29

The limits that stop an upload

From Microsoft's SharePoint limits and Restrictions and limitations in OneDrive and SharePoint:

LimitValueWhat you see
Single file upload250 GBUpload fails or never starts
Decoded path, including file name400 characters"The file name or path is too long"
Invalid characters" * : < > ? / \ |Upload skips or rejects the file
Reserved names.lock, CON, PRN, AUX, NUL, COM0-COM9, LPT0-LPT9, _vti_, desktop.ini, names starting ~$"This name isn't allowed"
List item attachment250 MBAttachment fails
Zip download from the browser20 GB totalDownload of a large folder fails (the reverse problem)
Site storage quotaSet by your admin, up to 25 TB"This site is out of storage space"

The site quota is the one people miss. Every version of every file counts against it, so a 50 MB drawing with 40 versions can use up to 2 GB. See Version history taking up storage.

Option 1: Upload large files and folders with built-in tools

  • Browser upload: select Upload > Files or Folder, or drag files onto the library. It's fine for a few large files. For thousands of files, a dropped connection or a closed tab leaves the upload half done.
  • OneDrive sync: sync the library (or add a shortcut to My files), then copy the folder into it in File Explorer. Sync resumes after interruptions and retries failed files. Paths also have to stay under the Windows limits; see File name or path too long.
  • Migration Manager: in the SharePoint admin center, Migration > File shares moves large file shares to SharePoint with a scan first. Use it for anything measured in terabytes or hundreds of thousands of files.

To check storage, open Site settings > Storage Metrics on the site, or the Active sites page in the SharePoint admin center for every site's storage used and quota.

Moving content you already have in SharePoint has its own limits. Move to or Copy to another site handles at most 100 GB and 30,000 files in one operation.

Option 2: Check a folder before you upload with PowerShell

This script reads a local folder and reports every file that would fail: over 250 GB, a path over 400 characters at the destination, invalid characters, or a reserved name. It changes nothing and needs no SharePoint connection.

# Check a local folder against SharePoint upload limits before uploading
$Source      = "D:\Projects\2026-014 Riverside"
$Destination = "/sites/Projects/Shared Documents/2026-014 Riverside"   # where it will land
$MaxPath     = 400
$MaxBytes    = 250GB
$Reserved    = '^(CON|PRN|AUX|NUL|COM[0-9]|LPT[0-9]|desktop\.ini)(\.|$)|^~\$|_vti_|^\.lock
    
    
    
    
    
  



Get-ChildItem -LiteralPath $Source -Recurse -Force | ForEach-Object {
    $relative = $_.FullName.Substring($Source.TrimEnd('\').Length).Replace('\', '/')
    $path = $Destination.TrimEnd('/') + $relative
    $problems = @()
    if ($path.Length -gt $MaxPath) { $problems += "path $($path.Length) characters" }
    if (-not $_.PSIsContainer -and $_.Length -gt $MaxBytes) { $problems += "file over 250 GB" }
    if ($_.Name -match '["*:<>?|]') { $problems += "invalid character" }
    if ($_.Name -match $Reserved) { $problems += "reserved name" }
    if ($_.Name -ne $_.Name.Trim()) { $problems += "leading or trailing space" }
    if ($problems) { [pscustomobject]@{ Path = $path; Problem = $problems -join '; ' } }
} | Sort-Object { $_.Path.Length } -Descending | Format-Table -AutoSize -Wrap

To check the destination site's storage first, use the SharePoint Online Management Shell:

Connect-SPOService -Url "https://contoso-admin.sharepoint.com"
Get-SPOSite -Identity "https://contoso.sharepoint.com/sites/Projects" |
    Select-Object Url, StorageUsageCurrent, StorageQuota   # both in MB

What to know:

  • $Destination is the server-relative path, which is what the 400-character limit counts. Library URLs often differ from their display names: "Documents" is usually Shared Documents.
  • Windows can't create names with most invalid characters, so those come from Mac files, zip archives or file shares mounted from other systems.
  • If a site uses the tenant's automatic storage management, StorageQuota shows the tenant's available space rather than a per-site limit.

Option 3: Find what is filling a site with SharePoint Essentials Toolkit

The toolkit doesn't upload files from your PC. It shows what is already using a site's storage and which paths are close to the limit, which is usually why the next upload fails.

1. Report the largest files

Under Storage, choose Largest files and version history, pick a site, and optionally only include files larger than a size you choose, with many versions, or with many attachments. The thresholds become a content filter you can review before running.

Largest files and version history report options: pick sites, narrow to lists, larger than 10 MB, version heavy, attachment heavy
Pick sites, narrow to libraries if you want, and set thresholds.

Sort by Item Size (Incl. all versions). On our test site a 48 MB drone video with four versions was using 192 MB, four times the size of the current file. Folder rows show the total of everything in them.

Item inventory sorted by item size including all versions: folders, a 48 MB drone video using 192 MB with versions, a 95 MB point cloud scan
Item Size is the current file; Item Size (Incl. all versions) is what counts against the quota.

2. Check path lengths in the destination

Add the Item Url Path Length and Folder Depth columns to the same report and sort descending. Anything near the limit leaves no room for a folder uploaded below it.

Item inventory sorted by Item Url Path Length, longest 386 characters at folder depth 6
The longest path here is 386 characters including the tenant address, six folders deep.

Item Url Path Length includes https:// and the tenant name. Subtract that (30 characters for https://contoso.sharepoint.com) to compare with 400.

3. Before moving content between sites

Run Check before you copy in the Copy area. It flags paths over 400 characters, invalid and reserved names, files over 250 GB and checked-out files in the source, so a move between sites or tenants doesn't fail halfway through.

Every report is free in Community Edition on up to 20 sites.

Frequently asked questions

What is the maximum file size I can upload to SharePoint?

250 GB per file, for both SharePoint and OneDrive. List item attachments are limited to 250 MB. Files that large upload far more reliably through the OneDrive sync app than through a browser.

Why does my SharePoint folder upload fail partway through?

Usually one file breaks a limit: a path over 400 characters at the destination, an invalid character or reserved name, or the site running out of storage. Long browser uploads also stop if the connection drops or the tab closes. Run a pre-upload check on the folder and use the OneDrive sync app for big folders.

How do I check how much storage a SharePoint site has left?

Open Site settings, Storage Metrics on the site, or the Active sites page in the SharePoint admin center. In PowerShell, Get-SPOSite returns StorageUsageCurrent and StorageQuota in MB.

Do file versions count against SharePoint storage?

Yes. Every stored version counts against the site quota, so a large file edited often can use many times its own size. The Largest files and version history report in SharePoint Essentials Toolkit shows the size including versions for every file.

Is there a limit on how many files I can upload to a SharePoint library?

A library can hold up to 30 million items. The practical limits are lower: Microsoft recommends syncing no more than 300,000 files across all synced libraries, and moving or copying between sites is limited to 30,000 files at a time.

See what is filling your SharePoint sites, free

SharePoint Essentials Toolkit Community Edition is free. Report the largest files, size including versions, and path lengths on up to 20 sites per Microsoft 365 tenant. Get your free Community Edition license key.

About the author. The Cognillo SharePoint Team builds and supports SharePoint Essentials Toolkit and has worked with SharePoint administrators on permissions audits, migrations and cleanup projects since 2012.