The short version: how I diagnosed and fixed an issue that was causing multiple iPhones and an iPad to get hot and drain their batteries. This is the nitty gritty on how I fixed the problem. Read on below for all the details, and how I let my Apple bias (almost) lead me away from the correct answer.
Update 4: If you haven’t heard, iOS 8 adds a great new feature to track battery usage by app, so you can see which app, specifically, is draining your battery. This is a FANTASTIC addition for troubleshooting this kind of problem. Find it at Settings > General > Usage > Battery Usage, and learn more about it here.
The iOS 8 Battery Usage screen in Settings
Update 3: A kind reader pointed out that as of iOS 7, the location for the app crash logs is now Settings > Privacy > Diagnostics & Usage > Diagnostics & Usage Data (instead of Settings > General > About > Diagnostics & Usage > Diagnostics & Usage Data). Thanks, John!
Update 2: A lot of people have contacted me to let me know the things I documented in this post helped them solve their battery issue. That makes me really happy. Recently, there was another popular post by former Apple Genius Scotty Loveless with some more great steps to diagnose and fix iPhone battery issues. You should definitely check it out: The Ultimate Guide to Solving iOS Battery Drain
Update: Apple released iOS 6.1.2 on February 19, 2013, which is slated to fix some Exchange-related bugs that can cause the problem I describe in this post. Make sure you’re running 6.1.2 or newer if you’re experiencing this problem.
Troubleshooting Excessive Heat and Battery Drain Issues on iOS Devices
Problem: iPhone (or iPad) gets abnormally warm when not doing anything. battery drains much faster than normal. Rebooting doesn’t fix it.
- Follow all of Apple’s battery life troubleshooting steps. No, really. Do all of them. Don’t skip any. I know you’re a super smart nerd. Just do them.
- Go to Settings, General, About, Diagnostics & Usage, Diagnostic & Usage Data. Scroll through the list and see if there are any system processes with an abnormally large number of entries (a few entries is normal). Identify the name of the troubled process.
- Research the name of the troubled system process to see what it’s function is – this will give you a clue to a possible solution. For example, dataaccessd is responsible for background syncing of Exchange, iCloud, CalDAV, and other calendar data. This was the cause of my problem. Others have reported issues with webbookmarksd, the process responsible for syncing bookmarks and Reading List with iCloud.
- Try disabling the functionality related to the troubled process, then rebooting your device to see if the issue goes away. In my case, I disabled all iCloud syncing (Calendars, Contacts, etc.). If you have an Exchange email/calendar account, remove it from your device. Make sure the server side has all of your data, because this step will delete it from your device.
- If the issue is resolved, try reenabling the functionality. Again, in my case, I turned iCloud syncing back on, and the issue hasn’t returned. I suspect a corrupt meeting instance that was deleted days ago was causing the problem.
- Going forward, use what you’ve learned about the Diagnostic & Usage data logs to keep an eye on your battery usage. If you desire, try a third party “activity monitor”-type app to see what system processes are doing. I used this free one. There are many to choose from.
Background, Details, Lessons Learned, Crow Eaten
The long version:
Prior to getting the iPhone 5, my iPhones spent a lot of time in a dock on my desk, or in a cradle in my car, being charged. I had no real idea of what “normal” battery life was like, because I was always near a charger. When I got my iPhone 5, with its new Lightning connector, none of my old intraday charging options worked anymore. For the first time, I got a sense of what “normal” battery life on my iPhone should be. I took it off the charger in the morning, used it normally throughout the day (i.e. took no special steps to preserve battery life), and by bedtime, I’d sometimes hit the 20% battery warning. Maybe 10% if I was using it heavily. Not once did it drain to zero and shut off. A typical day was an hour or so of listening to podcasts, one or two short phone calls, and an hour or so of browsing Twitter/Reddit/Facebook or reading in the Kindle app during lunchtime. I even left Dark Sky notifications (which actively uses GPS) and Instapaper Background Location Updates (which uses geofencing) enabled. Based on this, I had confidence that I could get through the day without charging, following my normal usage patterns.
A couple of weeks ago, I noticed that I was getting the 20% and 10% battery warning in late afternoon, and more than once, my phone would completely shut down when I pulled it out of my pocket in the evening. It was often quite warm (I could feel it on my leg). I was annoyed, but I figured that I was just using it too much. But at this point, I started to pay more attention to how much I used the phone, and where the battery was at throughout the day.
Around the same time, my wife complained to me that her iPhone 4S was getting hot for no reason, and the battery was draining quickly. Essentially the same symptoms. My wife’s charging habits are much different from mine (I charge religiously every night, she charges when the battery gets low), so I couldn’t make a direct comparison between our usage habits. But this coincidence raised my alert level another notch, and I started thinking about what could be causing the issue.
Here’s what I ruled out:
- iOS Version – I have 6.0.1, she has 6.0. So it wasn’t something introduced in the 6.0.1 update, and both of us had used 6.0 for weeks with no problems.
- LTE – My iPhone 5 has LTE, but her 4S doesn’t. Again, I used LTE for weeks with no issues.
- Bluetooth – not enabled on either phone
- Apps running in the background – besides the fact that Apple doesn’t let apps fully run in the background (there are a limited set of background APIs an app can use, like requesting location, playing audio, etc.), I did some troubleshooting to rule this out. Fresh restart of the phone, didn’t open any apps, and it would still get hot and drain the battery.
This is the part where I start jumping to conclusions, and being blinded by my own bias.
The only thing (I thought) our afflicted iPhones had in common was the AT&T network. I imagined that there was some issue with the AT&T network in our area (a misconfigured tower, etc.) that was causing the phones to crank up power to the cellular radios, get hot, and drain their batteries. If you’ve ever used a cell phone in an area with very minimal coverage, you know what I mean. In order to hold onto the signal, software turns up the transmit power on the radios. In my head, this was the only explanation for our problem. Apple doesn’t let apps run away in the background, and I didn’t even consider that it could be something integral to iOS itself. So I took to the interwebs, ranting and complaining:
Then some new clues popped up that eventually led me to the solution to our problem. And a nice, big helping of crow.
I got three emails, in close succession, informing me that I only had 5% (then 4%, then 3%) remaining on my iPad’s monthly data plan. I picked up my iPad, and it was warm, and the battery was lower than it should have been (49%, and it had hardly been used that day). Whatever this supposed AT&T network problem was, it was now affecting my iPad. My iPad with Verizon LTE. I don’t use LTE much on my iPad when I’m not traveling, because I’m always near wifi. I’ve never even come close to using my monthly allotment of 2GB. I concluded that something was chewing up large amounts of cellular data (and battery), just like our phones, but it couldn’t be AT&T’s fault. Humbling realization number one. I started searching for people with similar problems (and hopefully, solutions). I found a TON of results, which were hard to wade through. I knew this was a vague enough problem that finding specific, helpful information was going to be a challenge. I found lots of forum threads full of people with similar issues. These threads pointed out that you can check detailed system logs for crashes or other issues by going to Settings, General, About, Diagnostics & Usage, Diagnostics & Usage Data. Now, I’ve done my time in IT support. I know how to use logs to troubleshoot issues. I just assumed that the nice, clean Apple-designed world of iOS wouldn’t let me get at system-level event logs to gain any useful information. That it would all be locked up in a black box that only the Genius Bar could open with their magical incantations. I was wrong. It’s all right there, for anyone who wants to look. Humbling realization number two. This led to the final clue, and the solution to our problem. In the Diagnostic and Usage data, there were hundreds of entries for a system process called dataaccessd. It was crashing frequently. I downloaded a free Activity Monitor-like app to let me monitor those system level processes, and I saw that dataaccessd was essentially running amok – pegging the CPU and the network, and constantly working really hard to do whatever it was trying to do. More research revealed that dataaccessd‘s job is synchronizing calendar data for Exchange, CalDAV, and iCloud accounts. Many people in the forums reported success by disabling Exchange calendar sync. I use Exchange calendars for my work stuff, by my wife doesn’t. So it wasn’t that. Could it be iCloud? I suddenly recalled some weird iCloud calendar issues we’d been having. An apparently corrupt meeting from work that somehow landed on one of my iCloud calendars that I couldn’t delete. My wife complaining about events being added on her phone but not showing up on the Mac at home. Maybe it was iCloud. https://twitter.com/jabancroft/status/267843062443675648
I had gotten so frustrated with this problem that I could pick up my phone and tell by its temperature whether or not it was experiencing the issue. I could feel it get hot, and watch the battery percentage drop before my eyes. So I disabled iCloud completely (removing all my calendars, contacts, etc.), rebooted the phone, and waited. Several minutes later – long enough that the battery would have dropped a couple of percent if it were still having problems – the phone was perfectly cool to the touch, and the battery percent was exactly the same. The activity monitor app no longer showed dataaccessd going crazy. Disabling iCloud had fixed the problem. This was Apple’s fault, not AT&T’s fault. Humbling realization number three.
Many of the threads I read reported success by disabling then re-enabling Exchange (or iCloud), so I tentatively turned it back on, letting all of my data sync back, and watched it carefully over the rest of the evening and the following morning to make sure. It stayed cool as a cucumber, and the battery is back to the strong performance I was getting a couple of weeks ago. I did the same to my iPad and my wife’s phone, and they’re all back to normal, as well. https://twitter.com/jabancroft/status/268037040300519424
I can’t say with 100% certainly, but there’s a calendar item that I got from my Exchange account that I’m pretty sure was corrupt (it ended up on my iCloud calendar for some reason, and I couldn’t delete it), and I bet that’s what caused iCloud to go crazy.
What did I learn?
I didn’t want to admit that the problem could be Apple’s fault. My bias led me to prematurely place the blame on AT&T, and it had nothing to do with them.
There are useful diagnostic logs available on your iOS device. I should learn more about these. Ironically, the Apple bias that made me reluctant to blame them also made me reluctant to believe that they would provide the system-level diagnostics to solve the problem.
I’m not as smart as I thought I was. Making assumptions about what you think you know is dangerous, and often leads not only to the wrong answers, but to looking dumb in public.
I do not like the taste of crow, but I believe it’s healthy to eat it when you need to.