MacOS – Persistent badge on Messages app icon in macOS High Sierra

macosmessages

The Messages app on my Mac is showing a persistent badge which isn't going away. The app icon is consistently showing a count of 3 which has remained intact despite doing the following:

  • Exchanging messages with multiple recipients.

  • Clearing all the messages (from Messages on Mac as well as on all the linked devices).

  • Disabling/Enabling the iMessage account (on my linked Mac, iPhone and iPad).

  • Disabling/Enabling Messages in iCloud (on my Mac).

  • Disabled/Enabled Text Messages forwarding from iPhone to Mac and iPad.

I have set up my iPhone to automatically forward Text Messages to my Mac and iPad.

My iOS devices are running iOS 11.4 and Mac is running macOS High Sierra 10.13.5.

Note that the count on the icon is not just incorrect, it is persistently stuck at number 3. Count on iOS devices are appearing correct.

When there are unread messages, the count is shown correctly to reflect the number of unread messages. As soon as all the messages are read/deleted, the count goes back to 3.

I have a single Mac linked to my Apple ID. How do I proceed with getting rid of this incorrect count badge?

enter image description here

enter image description here

Right clicking the Messages icon in the Dock shows three numbers as shown below. However, no message is shown in the Messages windows.

enter image description here

Best Answer

None of the other answers really solved it for me. After killing the Dock or signing out and back in, I'd have the badge return eventually.

So in Finder I went to ~/Library and searched for the listed phone number. It showed me a file in ~/Library/Messages/Archive/yyyy-mm-dd/ that was named for the phone number. Deleted the file and then killed the dock (by executing killall Dock in the Terminal) and the badge was gone instantly.

I have also figured out the cause: deleting a message on your iPhone or iPad without reading it. It's always an automated message with a 2FA code or something, and that's because I could see the code and typed it in and then deleted the thread later because I always trash that junk.