SharePoint Storage Limits
Resolution Checklist
- 1 Check tenant storage allocations and site collection usage
- 2 Empty the first-stage and second-stage recycle bins
- 3 Analyze version history disk usage
- 4 Configure automatic site storage limits using PowerShell
- 5 Delete or archive obsolete version histories
SharePoint Storage Limits
This article provides a diagnostic checklist and troubleshooting guide to resolve SharePoint Storage Limits issues (such as “Site collection storage limit exceeded” errors, tenant-wide storage capacity alerts, and site lockouts).
Root Causes / Meaning
SharePoint storage limits are governed by tenant quotas and site collection policies. Typical causes of storage exhaustion include:
- Tenant Quota Exhaustion: Microsoft 365 allocates base tenant storage (1 TB plus 10 GB per licensed user). When the total storage used across all sites reaches this limit, all sites block writes.
- Site Collection Quota Exhaustion: Administrators configure site collection storage limits (e.g., maximum 100 GB for a site). If a site exceeds this, it is placed in a read-only state.
- Version History Overfill: By default, SharePoint saves up to 500 versions of a document. Continuous auto-saves on large files (e.g., a 50 MB PowerPoint presentation) create hundreds of full versions, inflating storage usage.
- Recycle Bin Overhead: Items in the first-stage and second-stage recycle bins count against the site storage limit until they are permanently purged (or automatically cleared after 93 days).
Initial Checklist
Before proceeding to advanced fixes, perform these basic checks:
- Check Site Storage Metrics: Go to Site settings > Storage Metrics (under Site Administration) to see which folders and libraries are consuming the most space.
- Clear First-Stage Recycle Bin: Navigate to the site Recycle Bin and click Empty recycle bin.
- Clear Second-Stage Recycle Bin: Click the Second-stage recycle bin link at the bottom of the Recycle Bin page and empty it.
Platform-Specific Resolving Steps
Windows Users
Step 1: Manage Site Quotas using SharePoint Online Management Shell
If you are an admin, change the storage limit of a site collection from manual to automatic (allowing it to scale up to the tenant maximum of 25 TB) or increase it manually:
# Connect to your SharePoint Online admin portal
Connect-SPOService -Url "https://yourtenant-admin.sharepoint.com"
# Increase the site storage limit manually (value in Megabytes)
# 1048576 MB = 1 TB
Set-SPOSite -Identity "https://yourtenant.sharepoint.com/sites/Marketing" -StorageQuota 1048576 -StorageQuotaWarningLevel 996147
# Alternatively, set tenant site storage management to Automatic
Set-SPOTenant -StorageQuotaMode Automatic
Step 2: Delete Old File Versions via PowerShell
Run this script to truncate version history on a library and free up space:
# Import PnP module and connect to site
Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/Marketing" -Interactive
# Get all files from a specific document library
$Files = Get-PnPListItem -List "Shared Documents" -PageSize 500
# Loop through files and delete versions except the latest 5
foreach ($Item in $Files) {
$File = $Item.File
if ($null -ne $File) {
$Versions = Get-PnPProperty -ClientObject $File -Property Versions
if ($Versions.Count -gt 5) {
# Clear older version history
$File.Versions.DeleteAll()
}
}
}
macOS Users
Step 1: Query Site Storage Metrics via SharePoint REST API
If you are using macOS, you can query your site collection’s storage usage using curl:
# Call the SharePoint REST API to get site usage details (requires authentication token)
curl -X GET -H "Accept: application/json;odata=verbose" \
-H "Authorization: Bearer <YourAccessToken>" \
"https://yourtenant.sharepoint.com/sites/Marketing/_api/site/usage"
Step 2: Set Site Storage Limits using pwsh (PowerShell Core)
Install PowerShell Core on macOS (brew install --cask powershell) and run the cross-platform SPO module commands:
# Start PowerShell Core
pwsh
# Inside pwsh:
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Scope CurrentUser
Connect-SPOService -Url "https://yourtenant-admin.sharepoint.com"
Set-SPOSite -Identity "https://yourtenant.sharepoint.com/sites/Marketing" -StorageQuota 524288
Actionable Command Blocks
Checking Site Quotas status (PowerShell / Windows & macOS)
# Get storage usage details for all sites in the tenant
Get-SPOSite -Limit All | Select-Object Url, StorageUsageCurrent, StorageQuota | Format-Table -AutoSize
Summary Checklist
- Opened Storage Metrics page to identify high-consumption directories.
- Emptied both the First-Stage Recycle Bin and the Second-Stage Recycle Bin.
- Configured the tenant storage quota mode to Automatic.
- Reduced the number of retained file versions in library settings.
- Purged old version histories of large files.