From f33eb86335838a96eac2c324b0592aa6ce83d35c Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 25 Feb 2026 20:23:44 +0100 Subject: [PATCH] Fix remote updates of unregistered contacts --- .../signal/manager/helper/StorageHelper.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java index baf206de..aeeb3ac5 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java @@ -211,18 +211,19 @@ public class StorageHelper { remoteOnlyRecords.size()); } - if (!idDifference.localOnlyIds().isEmpty()) { - final var updated = account.getRecipientStore() - .removeStorageIdsFromLocalOnlyUnregisteredRecipients(connection, - idDifference.localOnlyIds()); - - if (updated > 0) { - logger.warn( - "Found {} records that were deleted remotely but only marked unregistered locally. Removed those from local store.", - updated); - } - } - + // This logic is wrong, records should only be deleted if they're deleted remotely, not if the remote record is updated +// if (!idDifference.localOnlyIds().isEmpty()) { +// final var updated = account.getRecipientStore() +// .removeStorageIdsFromLocalOnlyUnregisteredRecipients(connection, +// idDifference.localOnlyIds()); +// +// if (updated > 0) { +// logger.warn( +// "Found {} records that were deleted remotely but only marked unregistered locally. Removed those from local store.", +// updated); +// } +// } +// final var unknownInserts = processKnownRecords(connection, remoteOnlyRecords); final var unknownDeletes = idDifference.localOnlyIds() .stream()