From 57da119a3eedd2b74cf02605579e323da93b9f2b Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 31 Jul 2026 23:09:21 +0000 Subject: [PATCH] Skip recipients without a usable identifier during full multi-device contact sync. --- .../securesms/jobs/MultiDeviceContactUpdateJob.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index c0ecc5a624..a5ad33d79f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -219,6 +219,11 @@ public class MultiDeviceContactUpdateJob extends BaseJob { Set archived = SignalDatabase.threads().getArchivedRecipients(); for (Recipient recipient : recipients) { + if (!recipient.getHasE164() && !recipient.getHasAci()) { + Log.w(TAG, recipient.getId() + " has no valid identifier! Skipping."); + continue; + } + Optional identity = AppDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.getId()); Optional name = Optional.ofNullable(recipient.isSystemContact() ? recipient.getDisplayName(context) : recipient.getGroupName(context)); Optional expireTimer = recipient.getExpiresInSeconds() > 0 ? Optional.of(recipient.getExpiresInSeconds()) : Optional.empty();