Dec. 15, 2019, 1:54 p.m.
IT | Rants | Watch

Did I Just Fix my Apple Watch 5 Battery Life Issue?

It is a long, sad story. Basically how my slight infatuation with all things Apple came crumbling down into a shattering of illusions, leaving only the naked reality of it all: Apple sucks just as much as any other company.

There are many components that fed into the hairlines that eventually fractured and ruptured my bubble of illusion. I am only going to touch base on one of them: The new Apple Watch 5. Since Apple Watch was first announced I always hated the fact that you had to raise your wrist to see the time. Many times that meant some awkward jerking of my wrist to get it to activate the display. With series 5 Apple finally announced the feature I always wanted - Always On Display (AOD). The worry has always been that an AOD would drain battery life significantly. I always managed to get 1.5 days (about 36 hours or so) on my series 4 watch, that are basically identical to series 5 with the exception of the AOD display. One and a half days are just fine by me - it allows me to charge it at night, and use it during the day. Apple however claims you still get all day battery life with the series 5 watch, which is what made me pull the trigger on selling the series 4 watch and getting a new series 5 watch.

I received my first apple watch series 5 (cellular + GPS model) on 21 September. I also got a new iPhone 11 Pro on 23 September. I set them up by transferring my old backup to the new devices - so first I paired the new watch with my old iPhone X, then two days later I migrated from the iPhone X to the 11 Pro.

It was from the beginning pretty much (I cannot say for sure how 21 - 23 September was as I do not recall) that my apple watch got horrible battery life. I know I first posted to the Apple community forums on 27 September, by which time I had already worked a couple of days on resolving the battery issues. The issues were present since 23 September when I got the iPhone 11 Pro, possibly earlier. I would get no more than 8 hours of battery life by just wearing it. That is 10 hours short of what Apple promises. My iPhone 11 Pro also had poor battery life - just being on standby for a day would drain it to 20% or so.

Around 7 October I installed macOS Catalina on my iMac Pro. I mention this to indicate that my issues started before installing Catalina. I tried everything I could think of to resolve the issue:

  1. Restarted apple watch
  2. Forced restarted apple watch
  3. Restarted both apple watch and iPhone
  4. Force restarted both apple watch and iPhone
  5. Reset the watch (erase) and set up as a new watch
  6. Erased and set up as new devices ALL of the iPhone, iPad and apple watch (this was a lot of work because I had to reconfigure everything manually)
  7. Reset and reconfigured the apple watch a couple more times
  8. Tried the new watchOS and iOS releases
  9. Returned the watch and got another identical model
  10. Returned the watch after repeating the erase and install on the watch and giving it a week and a half, in exchange for a GPS only model hoping it would be something related to the cellular component
  11. Contacted Apple Care and spent by now one month with them collecting diagnostic logs, doing tests and waiting for their senior engineering team to get back to me.

NONE of those helped. I even tried to hook up instrumentation from XCode to the watch to see what is draining it. I did notice the TrustedPeersHelper process always consuming a high amount of CPU. This seemed indicative of the problem. The log files collected by apple also reflected high cumulative times for this process. It was then when I noticed my iMac Pro also has the TrustedPeersHelper process always consuming anywhere from 40 - 100% CPU. I never felt it on the iMac Pro before because I have 10 cores. However, this clearly was not right. Searching online I eventually found this Reddit thread. In one of the replies someone mentioned almost exactly my situation - poor iPhone battery life, bad apple watch battery life and this process consuming a lot of CPU. His solution was to create a new apple ID - that solved it. Unfortunately that is just not possible for me to do - I have developer certificates tied to my account.

By that time some of the comments were not posted yet, so I had nothing more to go on. Now on to the Apple Care situation. I contacted them, and scheduled a callback. I never received a callback from Apple. I tried again, got a callback, the guy promised he would call me back in the next 30 minutes, never did. Third time I managed to get someone to work with me. I installed the log profile, ran it for two days waiting for the person to call back and collect the logs. He never did. This is the THIRD time I contacted Apple about this issue. Fourth time I mentioned that I was never called, and a support person called Amy (name changed for privacy reasons) told me she would personally take over the case and promised to work with me throughout the duration of resolving the case. She did call me three times in two week's time, collecting additional logs, requiring me to log battery % vs time twice and sending those details through. However it has been two weeks since I have heard from her - her last words were that engineering had no resolution as of yet, and that she would send me updates. Two weeks - I emailed her twice, no response. I am once again left to my own devices even though I paid for AppleCare+ support.

One thing I did note was that on the apple watch app, the Usage and Standby times were always almost exactly the same. That means after a day of just being on my arm, it would read: Usage: 11 hours, Standby: 11 hours 1 minute or so. That felt wrong - Apple's engineers told me that it is how series 5 is supposed to work due to AOD - which I disagreed with, as AOD is not an active state. But what do I know, right?

I decided to do some additional research into the TrustedPeersHelper process and found this forum. I decided to try a variant of what member otech did. Take note I do not have the knowledge to tell you if this is safe or not - all I know is I did this and I have as of yet no ill effects:

  1. Shut down all iOS devices
  2. I left my two macs running. I opened Activity monitor, located the TrustedPeersHelper process, went to Information and Open Files and Ports. I noted the GUID for the path to the SQLLite keychain DB.
  3. I closed all processes and simultaneously performed the following steps from the console in both macs:
    cd ~/Library/Keychains/<GUID>
    mkdir backup
    mv ~/Library/Keychains/<GUID>/com.apple.security.keychain-defaultContext.TrustedPeersHelper.{db,db-shm,db-wal} backup/
    tpctl reset
  4. I then shut down both macs.
  5. I booted one mac back up, signed in and re-authenticated my iCould account in System Preferences.
  6. I reviewed the associated devices and made sure none were present that I did not actually use (there were no old devices)
  7. I rebooted the mac and left if for 5 minutes or so.
  8. I booted the other mac and logged in, and also re-authenticated to iCloud via System Preferences.
  9. One by one I booted the iOS devices back up - first iPhone, then iPad, then apple watch.
  10. I saw that TrustedPeersHelper on the mac used 0% CPU, and after two days of monitoring it has a total CPU time of 1.89, which is almost negligible. It used to show 40+ hours of CPU time.
  11. I checked my apple watch that evening after charging it to 100%, and it was better, but still not good, draining at a rate of about 5.5% per hour. That translates to 18 hours, with no usage. I knew the watch could do better.
  12. As a last step I AGAIN erased and reset the watch, and set it up as a new device. I charged it to 100% and used it as I normally would.

As of today, two days after doing this, I can tell you that yesterday my watch drained at a rate of 2.3% per hour. That is with AOD on, normal usage. I woke up at 09:00 with the watch at 100%, and by 23:00 it was at 68% - usually by 15:00 it is dead). Furthermore, the iPhone 11 Pro was at 82% after a whole day of light usage. Much better than 20%.

Today I have been awake for 5 hours, and my watch is at 93%. That is 1.4% drain per hour! My iPhone is at 99% - also 5 hours standby. TrustedPeersHelper is at 0% on my iMac Pro. And Usage/Standby times? Usage: 27 minutes, Standby: 5 hours 12 minutes. Go figure.

This is the first time ever I had TWO days in a row that I had good battery life since I upgraded to series 5. Hopefully this helps someone in the same boat as I am. I think what the problem was, is that the DB of trusted peers for iCloud authentication got messed up, and caused a lot of inter device traffic which bumped the CPU usage and drained the devices. So some people have a corrupt DB that causes all of these related issues, and clearing the DB re-syncs it and fixes the issues (it seems).

Update: 16 Dec 2019 Yesterday my watch finished the day with 68% remaining, after 14.5 hours of on time, and my iPhone 11 Pro was at 89%. Today, after 6 hours of on time my watch is at 87% and my iPhone at 99%. What a difference!

Update: 27 Dec 2019 My watch was perfect until midway yesterday, when the usage/standby figures were 8h/12h and the unit was at 55%. This morning usage/standby were 34m/34m and battery was 98% after 30 minutes - clearly broken again. I did nothing different. Rebooted it, charging it up and will monitor.

Update: 30 Dec 2019 So after hard rebooting the watch it has been back to normal - meaning great battery life. Perhaps it was just a glitch - a runaway process?

Update: 30 Jan 2020 For the past month I had perfect battery usage on all my devices - Apple Watch, iPhone Pro 11 and iPad Pro. The watch is usually above 60% after a full day of use (16 hours). I believe this is now fixed. And no, Apple has not yet responded to my followup request for a status update. So much for expensive AppleCare+.