Clearing a Stuck Missed Call Badge on OS X

I’ve been staring at a useless (and incorrect) badge on my Facetime icon on my Dock for well over a year. From today on, I have a clean slate!


I’ve been living with this headache for over a year now, before even doing a full reinstall. While I didn’t reinstall in an attempt to clear the stuck badge, I was hoping that it would get fixed. Yeah. So much for that.

I do NOT have that many unanswered Facetime calls!
I’ll get right on that as soon as I return these calls.

After much time wasted spent trying to find a fix or solution to no avail, I figured I’d try to give this a shot by taking semi-educated haphazard stabs in the proverbial dark. Go figure that after less than an hour, I had something that appeared to work, and in less than 2, something reproducible to share and save for posterity.

What I ended up having to do was edit the [undocumented] Facetime log database, which like many other local application databases in OSX, is stored in a lightweight SQLite database. As an added bonus, since SQLite is so widely used, both in core OSX and third party applications, this fix doesn’t need ANY external tools. Everything needed is already right there on the computer.

Alrighty, let’s do this!

  1. Open terminal
  2. Type the following commands
  3. cd ~/Library/Application\ Support/CallHistoryDB
  4. sqlite3 CallHistory.storedata "SELECT COUNT(*) AS [Unread Count] FROM ZCALLRECORD WHERE ZREAD = 0"

Make sure the result (the last line displayed) is the same number as on the badge. If it matches, or even if it is a non-zero value, type the following command
sqlite3 CallHistory.storedata "UPDATE ZCALLRECORD SET ZREAD = 1 WHERE ZREAD = 0"
Alternatively, instead of updating the call/log database, you can also just delete it if you don’t care about the contents, like so
cd ~/Library/Application\ Support/CallHistoryDB
rm CallHistory.*

  1. Quit terminal (Cmd+Q)
  2. Do one of the following (first two did not work for me)
    Restart the Dock: killall Dock
    Restart Finder: killall Finder
    Restart OSX?

Note the lack of badges! TADA! That’s it. Years of grief and aggravation, uncounted help forums, threads, posts and unanswered cries for help gone. Cleansed. Ridden. Rejoice!

Standard disclaimers

Does it reset the read state across iCloud? Other devices? That’s a great question! I’m glad you asked! It sounds like extra credit work you can do and then share with the world! My one bit of advice after thinking about it for 3 seconds is that, you might need to start Facetime after the badge is cleared, in case it needs to be running to sync across the cloud.

Finally, and most importantly, I’ll leave you with this wisdom…

Have you tried turning it off an on again?
So you’re saying my fix has caused your computer to blow up, gave your cat Feline Leukemia, got your favorite TV show canceled, put you on the no-fly list AND stole 20$ from your wallet? Fascinating.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.