One morning, users can open their files but cannot save them. Uploads fail, new folders fail, and every SharePoint site in the tenant shows a banner saying it is read-only. Nothing is broken. The tenant has simply run out of storage, and Microsoft has blocked writes until usage is back under the quota.
We recently helped a client out of exactly this situation. Their tenant held about 8 TB of data against a quota of roughly 1 TB. This article explains how SharePoint storage is counted, why a tenant can drift that far over without anyone noticing, and the real options for getting out, including the approach we used to clear the overage without losing a single file.
A Microsoft 365 tenant gets one pooled SharePoint storage quota:
A company with 7 licenses therefore has a little over 1 TB to share across every SharePoint site and every Teams file library.
OneDrive is counted separately. Each user's OneDrive has its own quota, 1 TB by default. On most business plans an admin can raise it to 5 TB, and Microsoft support can raise it further, up to 25 TB per user, on request.
What counts against the SharePoint quota is more than the files users see:
In our client's case, it was a slow drift over several years:
That last point is the trap. A tenant can sit over its quota for a long time without any visible impact. Then enforcement kicks in, and every site goes read-only at the same moment. The problem changes overnight from "we should clean up one day" to "nobody can save a file."
Microsoft sells extra SharePoint storage as an add-on, Office 365 Extra File Storage, billed per GB per month.
Before you confirm the purchase, check the quantity and the actual monthly cost in your billing account. For a multi-terabyte overage, the total is often larger than people expect.
Best for: buying time while you clean up, or when the data genuinely needs to stay in SharePoint.
This was our route. Most of the 8 TB had been copied to OneDrive years earlier, so the SharePoint copies were redundant. The challenge was proving it. "It was migrated" is not proof, and deleting terabytes of client records based on a belief is not an option.
Here is the process we followed:
Lessons we learned along the way:
Result: the tenant went from about 8 TB to under its quota, read-only lifted, and not a single file was lost.
Best for: tenants with duplicated or previously migrated data, which is more common than most organizations realize.
OneDrive storage does not count against the SharePoint quota. For archive data that a small team mostly reads, a dedicated, licensed OneDrive account (for example, a shared "archive" user) can hold 5 TB, and more on request to Microsoft.
Best for: large archives of scans or records that are mostly read and rarely edited.
Version history is often the hidden half of the problem. A spreadsheet edited every day for five years can be stored hundreds of times.
The upside is that this can free a lot of space without touching any current file. The downside is that deleted versions are gone for good, so check your retention and legal requirements first.
Best for: active document libraries with heavy editing.
For data that must be kept but is almost never opened:
These options are the cheapest per TB for cold data, but users lose the normal SharePoint experience for that content.
Best for: closed projects and old records kept for compliance.
A read-only tenant feels like an outage, but it is almost always the result of years of quiet growth: duplicated migrations, unlimited version history, and nobody watching the storage page. The fastest fix is to buy storage. The lasting fix is to understand what is using the space and remove it safely.
The rule we kept throughout the project: no file is deleted until it is proven to exist somewhere else. It is slower, but it is the only approach you can defend to a client.
If your SharePoint has gone read-only, or your storage is creeping toward its quota, talk to NIFTIT. We help small and mid-sized organizations analyze their Microsoft 365 storage, clean up duplicated data safely, and put the governance in place so it does not happen again.