signalapp / signalapp/Signal-iOS

Contact photos from iOS Contacts don't display in Signal (with workaround)

Open
#6,332 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Acknowledged
Dominant language
Swift
Stars
12.2k
Forks
3.5k
PR merge metrics
No merged PRs in 30d

Description

  • [ x] I have searched open and closed issues for duplicates
  • [ x] I am submitting a bug report for existing functionality that does not work as intended
  • [ x] This isn't a feature request or a discussion topic

Bug description

Contact photos from my iOS address book (iCloud) aren't showing up in Signal, even though "Use Contact Photos" is enabled and Signal has full access to Contacts. The contacts themselves resolve fine — name, number, everything — just no photo.

Looking at these two of the debug log:

WRN [OWSImageSource:130 imageMetadata]: Image does not have valid format. ERR [OWSContactsManager:695 systemContactOrSyncedImageData]: Couldn't validate system contact avatar

I found a reliable workaround, if I take a screenshot of the contact's photo and assign the screenshot as their photo instead of the original photo file, it shows up in Signal every time. I tested this on several contacts and it worked for all of them.
My guess is this is related to the HDR "gain map" data that iPhone 15+ cameras can embed in HEIC/JPEG photos by default.

Steps to reproduce
  • Assign a photo taken with the Camera app to a contact stored in iCloud, via the native iOS Contacts app
  • Confirm the photo displays correctly in the Contacts app (list and detail view)
  • Make sure the contact is also a Signal user, with no Signal profile photo set
  • In Signal, enable "Use Contact Photos"
  • Open the conversation with that contact in Signal

Actual result:
No contact photo appears in Signal.

Expected result:
Signal should display the iOS contact photo, as described by the setting.

Workaround found:
Take a screenshot of the original photo and assign the screenshot as the contact's photo instead of the original file. This has displayed correctly in Signal every time I've tried it, on multiple contacts.

Device info

Device: iPhone 15

iOS version: 26.6.1

Signal version: 8.25 (1809)

Link to debug log

https://debuglogs.org/ios/8.25.0/6d3c7ccfd0888afc02485df5ac3307c328563053c7134e5d6751ca9d47a5c2c1.zip

Thank you very much for the work, from France 🫶🏻

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting OWSImageSource.imageMetadata and OWSContactsManager.systemContactOrSyncedImageData, which appear in the reported log, then reproduce with an iOS camera photo assigned to an iCloud contact and compare it with a screenshot. Done means Signal displays the original contact photo when Use Contact Photos is enabled, without requiring the workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, swift
Domain
mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.