Messages on macOS consumes battery power

Battery life is normally stellar on my M1 MacBook Pro. During Friday evening this weekend, I used it for a couple hours off charger, and then closed the lid and went to sleep.

In the morning, the battery percentage was at 26%, which meant the battery level dropped roughly 70% overnight. Confused, I checked Activity Monitor’s Energy tab, and was presented with this horrific scene:

Screenshot of in Activity Monitor showing high energy usage

Apple’s Messages app was gulping juice, faster than a swarm of migrating Monarch butterflies on a can of Dr. Pepper. Not only had it been consuming power all night, it was still hogging CPU cycles the next morning, and was somehow preventing sleep.

I’m not sure what the 12hr power number means if not battery percentage, keeping in mind the battery level dropped ~70% and the number shown here says 20.78. It does give a good overview of which apps use the most battery over the last 12 hours.

You know what’s great about renaming apps to generic names, like iMessage to Messages? It makes it next to impossible to find people discussing the same issue, or fixes. And Apple’s official forums are flooded with pretenders who post the most generic and irrelevant responses I’ve ever seen, in what I can only imagine is an attempt at resume padding or zealous worship.

Anyway, the only real suggestion I found is to delete all links and animated GIFs from your conversations. I only deleted links, and while it did put a stop to the insane power drain, it was tedious, and I can only imagine how big of a hassle it would be if you have years of messages[1]. And selecting multiple links is a feature exclusive to the iOS app — but you have to select each one. There is no select all.

Here’s what the process looks like:

  1. Open Messages on iOS
  2. For each conversation in the list:
    1. Open the conversation
    2. Tap the contact/group name at the top
    3. Scroll down to the Links area
    4. Tap See All
    5. Tap Select
    6. Select each link – make sure you only tap the bottom gray part with the title, because if you tap the preview card, videos will play and Safari will happily open links 🤡
    7. Once you have all the links selected, tap the Delete button, and wait 10-15 seconds for iMessage to calculate the answer to life, the universe, and everything
    8. Done! 🙃

Here’s the results, one and a half days later:

Screenshot of in Activity Monitor showing almost no energy usage

While this worked, and Messages is using much less power, I am not thrilled about the prospect of having to do this regularly, and would love to script this. The next time this happens, I will set up a script to run every 10 minutes to check if Messages is running and kill the process, as I can still receive push notifications without Messages running. It’s an ugly bandaid, but it will give me time to figure out a better method. Or wait for an official fix 💀

And please, if you’re aware of a better solution, let me know.

At the time of this writing, I’m using macOS 12.3.1 and Messages 14.

  1. Personally, I’d set Messages to delete any messages older than 1 year or 30 days in that case. It’s slow scrolling back to look at old conversations, and chances are they’d get accidentally wiped in the future anyway. I gave up on backing up my texts years ago. ↩︎