Wednesday, June 22, 2022

Limiting iMessage’s Disk Usage

Steve Troughton-Smith:

It blows my mind that Apple lets Messages-in-the-cloud suck up all the available local storage without giving you any real way to cap or reduce its size on disk without deleting the masters in iCloud. Can’t uninstall either. This is the real scam making 64GB iPads unworkable.

This bs is literally an OS upgrade blocker, would prevent you from getting security updates.

I ran into this recently as well. There are some controls in Settings to delete Top Conversations or Photos/Videos attachments, but those delete the content from Messages in iCloud, too. What if you just want to prune the local cache?

If you do decide to delete select attachments completely using Settings, I’ve found this to be buggy. After deleting some items, the list doesn’t refresh to show more, so you can’t delete any more even though there are still GBs on the phone.

Deleting from the Mac is also buggy. You can open a conversation’s info and bulk-select thumbnails—much easier than on an iPhone—but pressing Delete doesn’t actually bulk-delete them. It seems to only delete one attachment, and not always the first one selected.

The only reliable way that I’ve found to prune Message’s storage use is to set it to only Keep Messages for One Year. (It would be nice to be able to keep a bit more conversation history, but the only longer option is Forever.) Plain text messages, which take up very little space, get deleted, too, even though you really only wanted to free up space by deleting large attachments. And the messages are removed from the cloud and all devices, not just from the one that had limited storage.

What if you want to make a backup before deleting them from your iPhone—which will, via syncing, also delete them from your Mac? The Messages app has no export feature. There used to be a limited feature for automatically saving chat transcripts, but this was never in the iOS version, and Apple removed it from the Mac version when rewriting Messages using Catalyst.

Previously:

Update (2023-01-19): Nick Heer (Mastodon):

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.

[…]

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.

[…]

[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.

16 Comments RSS · Twitter


This could definitely use some tending too. They already have a similar space saving feature for iCloud photos, it would be nice to have similar functionality when using iMessage in iCloud.


I run into opposite problem more often. That is, Messages refuses to load images for conversations, repeatedly, even though these images are present in the iCloud copy.

Anyone knows how to fix that? Apple Support was of no help and once even said that it’s working “as designed”.


I agree with everything written. The info panel in Messages on both iOS and macOS is buggy and inconvenient.

There is, however, another way on Mac. If you go to About this Mac > Storage > Manage > Messages, there is a list of all iMessage attachments sorted by size. From here you can Quicklook, mass delete, and even reveal the items in Finder for copy/backup.

It's not all perfect though. Sometimes you have to close the window for deletions to truly disappear from the list (their quicklook previews go away though, so I'm assuming the files were already deleted). Making backups, like in Settings on iOS, is still a one-by-one affair — you can reveal multiple items, but they're all in different folders. At least drag-and-drop is easier. And the "Open in Messages" button does nothing, as far as I can tell, so you'll have a hard time putting the attachments back in context.


So this could be seen as extreme, but I use PhoneView to export messages as text (and reformat them for storage in the file system via script).

https://www.ecamm.com/mac/phoneview/


@Justin Now that you mention it, I think this Storage view on the Mac was where I saw the bug of the lists not reloading after being emptied, so I couldn’t actually prune very much.


It blows my mind that anybody would ever seriously consider iMessage storage to be permanent, stable or reliable, and especially since the great Catalystification of the Messages app. No, really--it's easier to just decrypt an iPhone backup and dump the output of the SQLite database ("sms.db"). More often than not I actually find that deleted messages that are no longer visible are occupying storage, even though, obviously, they've long-since been delivered and acknowledged. Far easier to selectively save the text of messages and always delete all conversations once dealt with, IMO. It's tragic.


Like Sean, I use iExplorer to export all the conversations I want to save from the iPhone backup on my Mac, then delete them from phone. Ridiculous that you still have to use this janky workaround to archive or search old messages. Sometimes I miss iChat.


I use iMazing to keep backups of all messages. But it sure shouldn't be necessary to have a shareware running to backup your messages that are more and more replacing emails.


PhoneView, iExplorer, and iMazing are good, but I don’t think they actually solve the problem because they can only export what has already been downloaded. As far as I know, to get old attachments to load you have to keep scrolling back within the Messages app.


This is one of the reasons why I use something else other than Messages with family and friends. Sure, I still have to converse with some people in Messages, but most of my conversations use something else.


Marc Wilson

Everyone ignores the obvious answer... don't use iCloud Messages. @Sebby is right.

A) they're just text messages
B) everything is now on the iOS device, can be easily copied with iMazing or PhoneView, and then deleted.
C) did I mention they're just text messages?


@Marc One problem with just using text messages is that it limits what you can do with attachments.


I think I figured out why Messages on iOS eats storage. It downloads two copies of all media files. One with lower case file extension and one with uppercase. It can be reproduced on macOS if ~/Library/Messages/Attachments (or the sandbox variant) is on case-sensitive APFS.

(I just tweeted this at you)


iMessage app's capabilities with pdf, video and movies have improved leaps and bounds since the day 1. It is no longer being used as simple messages. It is replacing urgent and short emails because of its convenience with a lot of people. It seems getting people's attention faster. So it is getting more usages. With that, I believe Apple really need to improve its capabilities in storage management. It is very good to be able to have iphones, ipads and macs to all have iMessages synced up for a single user. It improves work efficiency greatly for me. I really like this feature. However, there is no need to keep a large amount of storage sucked up on multiple devices, especially when iMessage app also allows backup on icloud. Manually deleting files on the devices is definitely not serving the Apple design principal right, and not right in my book as a consumer.

I really wish that Apple Engineering would be able to improve on the setting features. There are multiple ways to resolve this. For example, perhaps allow this app to only have one device to backup on the icloud and also allow user to allocate amount of data to be kept on physical devices for this app (by either using time limit or physical data amount as a FIFO). Or if backup software on icloud could manage the backup files correctly by only keeping single copies of files, then all device could turn on icloud backup while each device could keep a FIFO allocation of its own would be even more desirable.


Would disabling iCloud Messages give the option to remove them, which would free up space to let you install the iOS update after which you could re enable iCloud Messages to redownload them?


You can delete the local cache of messages without syncing the deletes to iCloud if you disable Messages in iCloud first.

- Disable Messages in iCloud.

- Change message history to 30 days or 1 year in the Messages settings.

- Let the background process clean up the database and delete attachments from disk.

- Verify the local storage has been freed up.

- Reboot the device, wait a week, or whatever makes you comfortable before re-enabling Messages in iCloud.

If you don’t need all message history on that particular device, then just leave Messages in iCloud disabled on that device. You’ll still get messages going forward as long as you have Messages enabled (with Messages in iCloud disabled).

If you want message history back, set the message history back to Forever in the Messages settings first (important!), then re-enable Messages in iCloud.

It should download messages on demand rather than do a full sync locally, but that behavior has changed or been inconsistent over time, so YMMV.

Leave a Comment