Why macOS says your disk is full when it is not
System Data, purgeable space, and local snapshots explain most of the gap between what Finder reports and what you can actually see. Here is how to read the storage panel.
Open System Settings → General → Storage and you will see a colored bar. Apps, Documents, Photos, and then a large gray block labeled System Data that never seems to shrink. Add everything up and it often does not match the total the bar shows. This post explains where that gap comes from and what you can do about it.
The three numbers that do not add up
macOS keeps track of three different sizes for your drive, and only one of them is what you would call "used".
- Used is the space taken by files that exist right now.
- Purgeable is space macOS can reclaim automatically when it needs to. It counts as free in some places and as used in others.
- Available is used plus purgeable subtracted from capacity, so it can look larger than what Finder lets you write.
Finder's "Get Info" on your drive reports purgeable separately. The Storage panel folds some of it into System Data. That is why the two screens disagree.
What lives in System Data
System Data is a catch-all for anything that does not fit the other categories. On most Macs it is made up of a few repeat offenders.
- Caches. Every app writes to
~/Library/Caches. Browsers, Spotify, Xcode, and Slack can each hold gigabytes here. - Local Time Machine snapshots. When your backup drive is disconnected, macOS keeps hourly snapshots on the internal disk. They are purgeable, but they still count.
- Logs and crash reports. Small individually, but they accumulate for years.
- Developer tooling. Xcode's DerivedData, iOS simulator runtimes, Docker images, and
node_modulesfolders are the usual suspects on a developer machine. - Mail attachments and Messages media. Both apps keep full local copies by default.
How to see what is actually taking the space
The Storage panel tells you that System Data is large, not what is inside it. To find out, you need to look at the file system directly.
DiskDude scans your whole drive and shows every folder by size, so a 14 GB ~/Library/Developer folder or a 9 GB cache directory stands out immediately. The Treemap view is the fastest way to spot the big blocks. The Age map view shows which of them you have not touched in months.
What is safe to remove
A few rules keep you out of trouble.
- Caches are safe to delete. Apps rebuild them. The first launch afterward may be slower.
- Snapshots clear themselves. Reconnect your Time Machine drive and let a backup finish, or run
tmutil thinlocalsnapshots / 10000000000 4in Terminal to trim them. - Leave
/Systemand/Libraryalone unless you know exactly what a file is. DiskDude will not add those folders to Cleanup for this reason. - Empty the Trash. Deleted files still take space until you do.
Once the obvious items are gone, run another scan. The number that matters is the one you can see, not the one the storage bar guesses.