Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

q3anon

macrumors regular
Original poster
May 8, 2020
125
56
Hi all,

On my Mac running macOS Tahoe 26.1, my local user avatar kept randomly reverting to the default gray silhouette on the login screen and in System Settings, even though I was using one of the built‑in “Suggestions” images (for example, the Red Rose or Dandelion from Flowers). Other devices on the same Apple ID (iPhone, iPad, etc.) would also briefly lose the picture on my My Card in Contacts. Once I reset the avatar on the Mac, it would sync again, but after some time or a reboot it would disappear once more.

After some digging, this does not seem to be corruption of the user record or anything caused by third‑party cleaners or scripts. Instead, it looks like a bug in how the macOS 26.1 System Settings GUI writes the avatar information into the local directory database. Tahoe 26.1 is known to have a handful of early bugs and UI quirks, so this fits the pattern.

#Symptoms

- You pick a built‑in avatar under System Settings → Users & Groups → your account → Edit (one of the Suggestions/Flowers/Animals, not a custom file).
- The avatar shows correctly for a while, including on the login screen and in Contacts/My Card across devices.
- At some later point (after a reboot or just “from time to time”), the Mac falls back to the generic gray icon, and your My Card picture may also clear on that Mac.

#What seems to be happening

macOS stores user information in a local directory database (dslocal). The avatar is represented by two relevant attributes on your user record:

- `Picture` – a string path to the image file on disk.
- `JPEGPhoto` – optional binary data with an embedded copy of the image.

On a healthy system, `Picture` should contain a real path like:

Code:
bash
Picture:
/Library/User Pictures/Flowers/Dandelion.heic

In my case, the plist for the user validated as structurally fine (`plutil -lint` reported OK), but the `Picture` attribute was missing or effectively blank. That means the GUI (System Settings) showed the avatar using a cached image, but never stored a stable file path in the directory record. When caches or loginwindow data were cleaned up by the system, macOS had nothing permanent to fall back to and silently reverted to the default icon.

#How to check if you’re affected

1. Set the avatar you want in **System Settings → Users & Groups** using one of the built‑in Suggestions.
2. Open Terminal and run:

Code:
bash
dscl . -read /Users/$USER Picture

3. If you see only:

Code:
bash
   Picture:

with no file path below, or you get `No such key: Picture`, then you’re in the same situation: the path was never written.

You can also verify that the user plist itself is not corrupt:

Code:
bash
sudo plutil -lint /private/var/db/dslocal/nodes/Default/users/$USER.plist

If that reports “OK”, the file is structurally fine and the issue is purely that the GUI never set the `Picture` attribute.

#Workaround / Fix

The workaround is to manually set the `Picture` attribute so the system has a permanent file path to the avatar.

1. In Finder, go to:

Code:
text
   /Library/User Pictures/

and locate the built‑in image you want to use (for example, `Flowers/Dandelion.heic`).

2. Copy the full path of that file (e.g. `/Library/User Pictures/Flowers/Dandelion.heic`).

3. In Terminal, run:

Code:
bash
   sudo dscl . -create /Users/$USER Picture "/Library/User Pictures/Flowers/Dandelion.heic"

Replace the path in quotes with the actual path to the image you chose.

4. Optionally, clean up any stale embedded photo data:

Code:
bash
   sudo dscl . -delete /Users/$USER JPEGPhoto 2>/dev/null

(If it says `No such key: JPEGPhoto`, that’s fine.)

5. Restart the directory service (or just reboot):

Code:
bash
   sudo killall opendirectoryd

6. Reboot the Mac and check again:

Code:
bash
   dscl . -read /Users/$USER Picture

You should now see the full path printed under `Picture:`.

From this point on, the avatar should survive reboots and system maintenance because macOS now has a proper, persistent pointer to the image file instead of relying on a volatile cache.

#Interpretation

In short, this looks like a regression in macOS Tahoe 26.1 where System Settings sometimes fails to populate the `Picture` attribute when you choose one of the built‑in Suggestions for your account icon. The system then behaves as if the avatar is set, but it is only stored temporarily (likely in `JPEGPhoto` or a cache used by loginwindow). When that cache is cleaned or refreshed, the avatar disappears because there is no stable `Picture` path to rebuild it from.

Manually creating the `Picture` attribute via `dscl` works around the bug and makes the avatar persistent again. Until Apple fixes this in a future 26.x update, it’s probably safest not to keep changing the account picture via the GUI, because that can wipe or fail to reset the `Picture` attribute and put you back in the same state.
 
Last edited:
Technical Explanation: Why this manual fix is necessary
After further testing, it is clear that this is a logic bug in the macOS 26.1 System Settings app. In a properly functioning OS, changing your avatar via the GUI should trigger three atomic operations:
  1. Database Commit: Write the file path to the Picture attribute in the local directory (for persistence).
  2. Cache Refresh: Update the JPEGPhoto binary data (for immediate visual performance).
  3. Cloud Sync: Trigger the iCloud daemon to push the change to your Apple Account.
The Bug:
In macOS 26.1, the System Settings app successfully triggers Step 3 (updating iCloud) and partially attempts Step 2(updating the visual cache), but it completely fails Step 1. It does not write the permanent file path to the directory database.
This creates a "zombie" state where:

  • The avatar appears correct immediately because the system is reading from the temporary JPEGPhoto cache.
  • Once that cache is cleared (after a reboot or system maintenance), the avatar disappears because the permanent Picture path was never written.
  • If you try to fix it via Terminal without deleting the JPEGPhoto key, the system continues to prioritize the stale/broken cache over your new path.

The Fix:
The terminal commands manually perform the job that the System Settings app failed to do: force-writing the Picture path (persistence) and deleting the stale JPEGPhoto cache (forcing the system to re-read the correct image). This ensures your avatar remains stable on your Mac while keeping the cloud sync intact.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.