Aren’t Snapshots Purgeable?
Since High Sierra and APFS snapshots, accounting for purgeable space has been inconsistent and often misleading. I first reported this over eight years ago in Sierra 10.12.6 and High Sierra 10.13.3, and most recently three years ago in Ventura 13.3.1. This article looks at how this is handled now in Tahoe 26.6.2.
[…]
There is disappointingly little documentation on space management in macOS, and the closest Apple comes to defining purgeable space is in Disk Utility’s Help pages, where it’s stated to be “space that macOS can free up when needed by removing files from your computer (you can’t manually remove the files that are designated purgeable, but macOS removes them as space is required)”.
On the face of it, that includes cache files but not snapshots, as they can be manually removed in Disk Utility, as I’ve discussed in detail here. This is contradicted when using
tmutil localsnapshotto make Time Machine snapshots, which reports that “local snapshots are considered purgeable and may be removed at any time by deleted(8)”, asdeletedis the purgeable space and cache management service in macOS.APFS snapshots can also be created by third-party apps that have the appropriate restricted entitlement. Apple doesn’t explain whether those too can be purged by macOS when additional free space is required.
Before macOS will start copying a file to a volume, it checks whether there’s sufficient free space available. I believe this is normally performed by the FileCoordinator API in Foundation, and appears in the log with the subsystem com.apple.foundation.filecoordination.
If there isn’t sufficient free space to accommodate the file to be copied,
deletedin the subsystem com.apple.cache_delete checks whether enough space can be freed by purging items known to be purgeable in the destination volume.deletedhas a fixed set of services that can be called on to purge items, listed in /System/Library/CacheDelete.[…]
Space-based purging of Time Machine local snapshots is unreliable. The reason for this is that Time Machine CacheDelete fails to report purgeable space when it’s available. Even when it does work, it can take nearly half an hour for Time Machine CacheDelete to recognise the appearance of purgeable space.
Sometimes you need to do it yourself with Disk Utility.
Previously:
- SuperDuper 4
- Tahoe Free Space Problems
- Purgeable Disk Space
- Purgeable Mac Apps
- Time Machine Evolution and APFS
- What You See in the Finder Should Always Be Correct
- Quantum Computing and APFS: Free and Used Space
- How OmniDiskSweeper Reports Free Space
- Local Time Machine Uses APFS Snapshots
Update (2026-09-03): Howard Oakley:
- When purgeable space is required,
deleted(subsystem com.apple.cache_delete) first discovers purgeable space for each caching service, to determine whether it’s sufficient.- If it is, and the decision is taken to purge caches, caching services are called on to free up space by purging their caches as required.
- Purging may then take place in phases until sufficient space has been freed.
- Purging is frequent during installation of macOS updates, even when there’s ample free space available.
Update (2026-09-08): Howard Oakley:
In the event that you’re caught out by circumstances, such as the combination of recent large snapshots and exceptionally large caches, macOS does try to manage as well as possible even when there’s just a few GB free. But once free space falls to around 1 GB you should see a warning notification.
[…]
From then on, most file operations, even creating a new folder, will fail. That applies to all apps, regardless of whether they handle those failures gracefully and warn you of the error. Actions like taking a screenshot start normally, but after their image has floated across the display, they just vanish and can’t be saved.
[…]
The worst combination of problems occurs when a Mac runs out of free disk space and physical memory at the same time. macOS memory management then wants to allocate space in the VM volume as its backing store for virtual memory, but in the absence of free space to do so, that fails and should propagate as a memory allocation error.
Update (2026-09-09): See also: Accidental Tech Podcast.
3 Comments RSS · Twitter · Mastodon
Apple is lying when they say MacOS removes space as it is required. I constantly have to go through and figure out where I need to be manually purging things
One of the worst things about modern macOS is its inability to deal with free space in a reasonable way. I honestly don't think the benefit of using these APFS features outweigh the fact that basic things like copying files, installing apps or updates, or knowing how much space you have available don't work properly.
One of the most useful scripts I have sitting on my computer is named "delete_all_local_snapshots.py". I use it regularly. Being that I have a Time Machine backup drive, I neither need nor want local snapshots. I wish there was a way to just turn them off completely.
Last time I ran low on disk space on my Mac, I looked up how to determine free space in this new APFS era, and I found 4 different methods. All of them gave completely different answers, with the lowest and highest differing by more than 10 GB, and no apparent way to reconcile these differences.
I suspect that macOS has simply gotten so complex that without a human being in charge of ensuring free space works consistently, these are going to get out of sync.
Apple is, according to the rumor mill, infamously allergic to automated testing, so it's not surprisingly that some numbers are wrong, when they don't interfere with happy-path validation.