Disk Usage and iCloud for Messages

The release candidate for iOS 16.3, available today for developers and rolling out next week, expands availability of Advanced Data Protection to customers worldwide. As I already had a beta version of that version on my iPhone, I figured I could take the opportunity and upgrade all my devices to the latest versions of their respective operating systems so I could enable ADP. But I hit something of a snag with my iPad, which was full.

If I told you its capacity — just 32 GB — that probably would not surprise you. But I store precious little on it: aside from a couple of movies and a small music cache, there is nothing on it. iPadOS consumes about seven of those gigabytes, which makes the product’s advertised capacity feel a bit disingenous, but I should have lots of space available. When I checked the iPad Storage menu, I saw the biggest source of my disk space problems: over 11 GB used by Messages.

This makes no sense. I do not often use Messages on my iPad. I have iCloud for Messages enabled, so my device should only be downloading messages and attachments as needed. It works that way on my iPhone, on which only 4 GB is consumed by Messages; on both my Macs, the Messages library folder is about 30 GB large, which is probably a complete archive.

You can change how long of an archive should be retained by Messages by changing the “Keep Messages” options in its settings. You can select from “30 days”, “1 year”, or “Forever”; I have it set to the latter. When you change that setting to a shorter timeframe, the following warning message will appear:

This will permanently delete all text messages and message attachments from your device that are older than 30 days [or “1 year”, if that is the option selected].

As written, this sounds like it is a way to control the cache of messages downloaded to your device. If “30 days” is selected, you should see only the past month’s worth of messages on your device and anything older than that will need to be downloaded on demand. But it is so much worse than that: because it syncs, it actually erases all messages in iCloud older than thirty days — permanently. This is the only warning you will get.

It arguably makes sense. iCloud for Messages is merely a syncing service — it will, in theory, match the state of your messages across all devices. But iCloud for Messages also kind of works like an ad hoc backup control: my iPhone clearly only has a subset of the messages on either of my Macs, but when I search for something, it will return results going back at least ten years. This works as expected. Whatever was happening on my iPad does not.

The “was” is important because there are no controls for managing iCloud for Messages. There is no way to purge the local cache from one device without those changes syncing across all devices. The only way I was able to install this software update was to restore my iPad and set it up from scratch. Yes, you can point and laugh at my iPad’s puny storage capacity, but it is a device Apple sold and officially continues to support. It should not work like this.

I see three problems here, all of them consequential but one clearly more serious than the others:

  1. iCloud for Messages has local caching bugs which can sometimes retain too much local storage for the device’s capacity, thereby preventing software updates.

  2. There are no ways to manually control a local iCloud for Messages cache. Apple has attempted to create a set-it-and-forget-it feature and, to its credit, it mostly works that way. But when it does not, there is no recourse.

  3. It is far too easy to permanently destroy user data. The warning which appears is unclear and its action does not match what is written.

I am not the first to write about these problems and I could swear I have mentioned them before — but I cannot find anything in my own archives. Steven Troughton-Smith pointed out the local caching bug, while Michael Tsai raised the lack of control. This could have been a catastrophe for my Messages history; I read plenty of stories today about people losing important memories because they changed this setting expecting it to only affect local copies.

I filed a bug report, of course.1 But I wanted to write this in the hopes it will appear in a web search, too, because I had a hard time finding a clear answer before asking. Changing the “Keep Messages” setting will affect what is stored across all devices if you use iCloud for Messages, and there is no way to undo it. If you set a shorter retention time, you will delete data in iCloud without any way of restoring it.

  1. FB11955286. ↥︎