Thursday, July 28, 2022

Purgeable Mac Apps

Daniel Jalkut (tweet):

For months now, I have been scratching my head over a small but persistent number of “crash reports” affecting a few of my apps. The issue is most prevalent in MarsEdit, where I have a handful of users who run into the issue multiple times per day.


Here we have a message asserting that MarsEdit was terminated, on purpose, and better still, it includes an explanation! As far as explanations go, “CacheDeleteAppContainerCaches” is not much of one, but it did give me something to go on. Searching for the term yielded pertinent results like this post about Apple Mail and Safari “suddenly quitting.” Unfortunately, they all seem to be scratching their heads as much as I am.


With some tinkering, I was able to narrow down the reproduction steps to running the “Free Up Purgeable Space” action. It turns out this is invokes a system API responsible for trying to delete caches, etc., from a Mac. Normally the system only does this when disk space is critically low, but CleanMyMac gives you the option to exercise the behavior at any time.


As you’ve surmised, the exception code 0xbaddd15c (‘bad disc’, which sounds worse than it is) seems to be related to our CacheDelete subsystem.


CacheDelete won’t delete files out from underneath a running app so, if it needs to delete something, it terminates the app. It should only do that when the app is essentially invisible to the user.

macOS really doesn’t like it when the disk is almost full.

Here’s a list of other such exception types.

See also: Howard Oakley.

1 Comment RSS · Twitter

Ben Kennedy

MacOS no longer notifies the user when the disk is low (a fatal design regression, in my opinion), and instead silently kills apps (also a fatal design regression, in my opinion).

I filed FB9781495 last November. No reply from Apple.

Leave a Comment