7

After upgrading to macOS Big Sur (11.0.1), the notification of new messages only shows contact number instead of contact names. I can see contact name, profile pics in my Messages.app and Contacts.app, just not in the Notification Center.

I have enabled messages in iCloud on both macOS and iOS.

Any suggestions?

2
  • 1
    Did you manage to solve this? I am having exactly the same issue. Commented Nov 27, 2020 at 22:08
  • I am also experiencing this. I first noticed it around 11.2.x but it continues to this day—and I am running 11.4 now. Rebooting does not help. Is this some type of corruption in the Byzantine chat.db SQLite database?
    – luckman212
    Commented May 29, 2021 at 16:05

3 Answers 3

3

I managed to fix this by going to System Preferences > Language & Region. I changed the default language from English (UK) to English (Canada) and quit System Preferences. I then changed the default back to English (UK) and then quit System Preferences again. I then restarted macOS.

I have absolutely no idea why that works. From the number of similar posts on the internet proposing different solutions, I suspect there are multiple possible issues leading to the same problem. However, this it worked for me on macOS Big Sur 11.0.1. Unfortunately I can't find the link describing this solution to give credit but if anyone does find it do link in.

Hope this helps you.

1
  • 1
    Confirmed. It did not fix any of the old notifications, but noticed all my new notifications are correctly showing contact name. Commented Aug 24, 2021 at 20:04
3

I did a bit of digging and uncovered a fairly unobtrusive workaround for this. YMMV, but it worked for me. Tested on macOS 11.4.

By restarting a few system agents, the bug appears to go into remission. This leads me to believe that the root cause is some sort of timing issue or race condition that happens during boot.

Until a proper fix exists, I welcome anyone to try this script (also at luckman212/imessage-number-fix)

#!/usr/bin/env bash

declare -a xpcArr=(
  gui/$UID/com.apple.AddressBook.abd
  gui/$UID/com.apple.AddressBook.AssistantService
  gui/$UID/com.apple.AddressBook.ContactsAccountsService
  gui/$UID/com.apple.AddressBook.SourceSync
  gui/$UID/com.apple.assistant_service
  gui/$UID/com.apple.assistantd
  gui/$UID/com.apple.CallHistorySyncHelper
  gui/$UID/com.apple.ContactsAgent
  gui/$UID/com.apple.iCloudNotificationAgent
  gui/$UID/com.apple.imagent
  gui/$UID/com.apple.imautomatichistorydeletionagent
  gui/$UID/com.apple.notificationcenterui.agent
  gui/$UID/com.apple.telephonyutilities.callservicesd
  gui/$UID/com.apple.usernoted
  gui/$UID/com.apple.UserNotificationCenterAgent
  user/$UID/com.apple.imdpersistence.IMDPersistenceAgent
)

for d in "${xpcArr[@]}"; do
  echo -n "restarting $d"
  read -r PID < <(launchctl kickstart -kp "$d")
  if [ -n "$PID" ]; then
    echo " ✔ [$PID]"
  else
    echo " ✘"
  fi
done
3
  • Answers shold standalone on this site and not need to look on other sites. Please put the information here.
    – mmmmmm
    Commented Jun 2, 2021 at 20:10
  • @mmmmmm Got it. I just brought the info over from Github.
    – luckman212
    Commented Jun 3, 2021 at 0:12
  • 1
    @luckman212 this is the kind of answer I hope and dream for when on apple SE. Straight to the point, fixes issue, provides reusable script for when it happens, points to repo for updates. Brilliant. Folks this is the kind of engineer you want to hire. Commented Jul 9, 2021 at 16:33
1

Here is the one-line script that will run the same code as the original script in the terminal:

declare -a xpcArr=(gui/$UID/com.apple.AddressBook.abd gui/$UID/com.apple.AddressBook.AssistantService gui/$UID/com.apple.AddressBook.ContactsAccountsService gui/$UID/com.apple.AddressBook.SourceSync gui/$UID/com.apple.assistant_service gui/$UID/com.apple.assistantd gui/$UID/com.apple.CallHistorySyncHelper gui/$UID/com.apple.ContactsAgent gui/$UID/com.apple.iCloudNotificationAgent gui/$UID/com.apple.imagent gui/$UID/com.apple.imautomatichistorydeletionagent gui/$UID/com.apple.notificationcenterui.agent gui/$UID/com.apple.telephonyutilities.callservicesd gui/$UID/com.apple.usernoted gui/$UID/com.apple.UserNotificationCenterAgent user/$UID/com.apple.imdpersistence.IMDPersistenceAgent); for d in "${xpcArr[@]}"; do echo -n "restarting $d"; read -r PID < <(launchctl kickstart -kp "$d"); if [ -n "$PID" ]; then echo " ✔ [$PID]"; else echo " ✘"; fi; done
2
  • This one-liner worked for me. The second time this happened, I tore it apart to figure out what service I needed to restart exactly. Of course, it was the last one on the list, "IMDPersistenceAgent". Commented Jan 18 at 21:16
  • 1
    @TruismsHounds Yep, this fixed it for me: launchctl kickstart -kp user/$UID/com.apple.imdpersistence.IMDPersistenceAgent
    – elliotcm
    Commented May 10 at 15:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .