Mac says 'Storage Almost Full' but you're only using 200 of 512 GB — what's 'purgeable'?
APFS snapshots, Time Machine local, iCloud cache — what 'purgeable space' on macOS actually is, why it doesn't self-clean, and how to force it.
True story: you open About This Mac → Storage, and the colored bar says “Available: 180 GB”. You start copying a 50 GB backup file over. Three minutes in, macOS slaps you with: “The disk you are copying to is full.”
Wait, what? You had 180 GB free. How does 50 GB fill that?
Welcome to purgeable space — a feature Apple thought was clever, and in practice drives people mad.
What is purgeable?
On APFS (every Mac from High Sierra onward), there’s a special category of storage called purgeable. It’s data that’s actually occupying disk, but macOS considers “deletable when needed.”
Example: iCloud Drive’s “Optimize Mac Storage” downloads files locally so you can work offline. Those files take real disk space — but because there’s a cloud copy, macOS flags them as purgeable: “I’ll clear these if the disk fills up.”
Finder, when it shows “Available”, counts purgeable into that number. So you see 180 GB “free”, even though only 20 GB is truly free and 160 GB is purgeable.
The problem: when you copy a big file, macOS must purge enough to make room — and that mechanism isn’t always fast enough or smart enough.
See your real purgeable number
Terminal tells you the truth (Finder doesn’t):
diskutil info / | grep -E "Container Free|Volume Free|Purgeable"
Sample output:
Container Free Space: 18.3 GB
Volume Free Space: 180.5 GB (includes Purgeable: 162.2 GB)
That’s the actual picture: you have 18 GB genuinely free, and 162 GB is purgeable.
The 4 main sources of purgeable
1. Time Machine local snapshots
The biggest culprit on dev machines. macOS creates local snapshots even when no external Time Machine drive is connected.
tmutil listlocalsnapshots /
If you see 20+ entries, snapshots may be holding 50+ GB hostage. Remove them:
# Delete the oldest one
sudo tmutil deletelocalsnapshots 2024-01-15-130000
# Delete all
for s in $(tmutil listlocalsnapshots / | awk -F. '{print $NF}'); do
sudo tmutil deletelocalsnapshots "$s"
done
Warning: snapshots are your safety net against rm -rf accidents. Only delete them if you have another backup.
2. iCloud Drive / Photos cache
If you have “Optimize Mac Storage” enabled in iCloud settings, macOS caches iCloud files locally. When you open one, it downloads. When you stop using it, it’s supposed to purge — but often doesn’t, promptly.
Toggle optimize to force a flush:
System Settings → Apple ID → iCloud → Drive → disable “Optimize Mac Storage” — wait 10 minutes, then re-enable.
3. System caches
Font caches, Spotlight index, QuickLook thumbnails:
# Rebuild Spotlight index (temporary 2-5 GB reclaim)
sudo mdutil -E /
# Clear QuickLook
qlmanage -r cache
4. App-specific “redownloadable” caches
Photos, Mail, Music, TV.app all have caches marked as redownloadable. No single command forces them — each app has its own path (Photos: Rebuild Library; Music: File → Library → Update Cloud Library).
How to force a purge
A handy trick: create a huge dummy file so macOS is forced to purge. This command makes a 100 GB empty file, then deletes it — but during creation, macOS has to purge to make room:
mkfile 100g ~/big_dummy_file
rm ~/big_dummy_file
Re-check diskutil info / afterwards — Container Free Space will have jumped.
When to worry
- Total disk < 10% free (
Container Free Space, notVolume Free Space): real cleanup needed. Purge won’t save you. Read my overview of where your GB really go for where to start. - Copying large files fails even though Finder shows space: force-purge as above.
- Time Machine local snapshots > 50 GB: delete if you have external backup.
If Container Free Space is above 20%, you don’t need to do anything. macOS will purge when it genuinely needs to.
TL;DR
Finder lies (with good intentions). diskutil info / tells the truth. When you see “Storage Almost Full” despite free GB showing, always check container free before deleting anything.
I built Molecule because I got tired of memorizing diskutil, tmutil, mkfile. The app shows real Container Free, lists local snapshots, and purges with one click — still preview-first, nothing destructive by accident.