sharepoint

SharePoint Upload Failed

Resolution Checklist

  • 1 Diagnose required columns and validation rules
  • 2 Resolve co-authoring conflicts and local file locks
  • 3 Reset OneDrive desktop client caches
  • 4 Bypass client using PnP PowerShell or MS Graph API
  • 5 Verify maximum file size and API limit thresholds

SharePoint Upload Failed

This article provides a diagnostic checklist and troubleshooting guide to resolve SharePoint Upload Failed (such as upload errors in OneDrive, “Upload Blocked” messages in Word/Excel, or validation errors preventing files from saving).

Root Causes / Meaning

SharePoint upload failures occur when files fail to write to the cloud repository. Typical root causes include:

  1. Required Columns / Metadata Policies: The document library has columns marked as “Required,” or a validation formula (e.g., column validation) is not met, blocking the file from check-in.
  2. Checkout Enforcement: The library settings have Require Check Out enabled. If a user tries to upload or save a document without checking it out first, the upload will fail.
  3. File Size and Network Timeouts: The file exceeds the maximum limit (250 GB) or, more commonly, a slow connection causes the browser session/client API to time out during multi-part chunk uploads.
  4. Co-authoring Lock Out: Another user has checked out the file, or a lock handle from an aborted editing session remains active in the cloud (locks usually expire after 30–60 minutes).
  5. Office Cache Corruption: The Office Document Cache (ODC) holds a conflicted version of the document, refusing to upload newer changes.

Initial Checklist

Before proceeding to advanced fixes, perform these basic checks:

  1. Try Web Interface: Upload the file directly via the SharePoint browser interface. If it succeeds, the issue is with your OneDrive desktop client. If it fails, check the library settings.
  2. Verify File Name: Ensure the filename doesn’t end in a period or space, and contains no illegal characters.
  3. Verify Permissions: Ensure you have Contribute or Edit permissions on the target folder or library.

Platform-Specific Resolving Steps

Windows Users

Step 1: Force Clear Office Sync Locks and Cache

When Microsoft Word or Excel says “Upload Blocked”, clearing the cache forces the application to create a clean upload handle:

  1. Close all Microsoft Office programs.
  2. Open the Command Prompt as Administrator and run:
:: Kill Office Sync and cache handlers
taskkill /f /im MSOSYNC.EXE /im CSISYNCCLIENT.EXE

:: Remove the Office cache folders
rmdir /s /q "%localappdata%\Microsoft\Office\16.0\OfficeFileCache"

Step 2: Upload via PnP PowerShell to Bypass Local Clients

If the local client refuses to upload, bypass it to verify if the server accepts the file:

# Connect to SharePoint site
Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/Projects" -Interactive

# Upload the file directly using API chunking
Add-PnPFile -Path "C:\LocalFolder\LargeFile.zip" -Folder "Shared Documents" -ChunkSize 10

macOS Users

Step 1: Reset the Office Upload Daemon

For Office on macOS, reset the cache containers to resolve “Upload Blocked” alerts:

# Force quit Office apps
killall "Microsoft Word" "Microsoft Excel" "Microsoft PowerPoint" 2>/dev/null

# Clear the cached document database files
rm -rf ~/Library/Containers/com.microsoft.SharePoint-mac/Data/Library/Caches/*
rm -rf ~/Library/Group\ Containers/UBF8T346G9.Office/msoclipboard

Step 2: Perform Chunked Upload via Microsoft Graph API (Bash/curl)

If the web browser or OneDrive client fails due to size or timeouts, use curl to upload the file to Microsoft Graph in 10MB chunks:

# Create an upload session URL via Graph API (requires auth token)
UPLOAD_SESSION_URL=$(curl -X POST -H "Authorization: Bearer <AccessToken>" \
  -H "Content-Type: application/json" \
  -d '{"item": {"@microsoft.graph.conflictBehavior": "replace"}}' \
  "https://graph.microsoft.com/v1.0/me/drive/root:/LargeFile.zip:/createUploadSession" | grep -o 'uploadUrl": "[^"]*' | cut -d'"' -f3)

# Upload the file to the session (replace with your local file paths and ranges)
curl -X PUT -H "Content-Length: <ChunkSize>" \
  -H "Content-Range: bytes 0-<ChunkSize>/<FileSize>" \
  --data-binary "@/path/to/LargeFile.zip" "$UPLOAD_SESSION_URL"

Actionable Command Blocks

Diagnose Folder Check-Out State (PowerShell / Windows)

If files cannot be uploaded because they are locked, check if the library enforces Checkout:

# Connect to the target site
Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/Projects" -Interactive

# Retrieve List and check ForceCheckout setting
$List = Get-PnPList -Identity "Shared Documents" -Includes ForceCheckout
$List.ForceCheckout

Summary Checklist

  • Attempted upload directly via the SharePoint web interface to isolate the client.
  • Confirmed that Require Check Out is disabled, or checked out the document.
  • Verified that all required columns in the library have valid metadata values.
  • Terminated Office sync processes (MSOSYNC.EXE / CSISYNCCLIENT.EXE) and cleared the local cache.
  • Tested the upload with a smaller test file to isolate network capacity and throttling.