From b9008f0b667e68c34baaf0e34e830d79fb2bdee7 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 14 Sep 2025 17:31:31 +0200 Subject: [PATCH] Handle missing storage manifest version correctly Fixes #1829 --- .../org/asamk/signal/manager/helper/StorageHelper.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 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 14db7c13..3c8eee09 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 @@ -18,6 +18,7 @@ import org.signal.core.util.SetUtil; import org.signal.libsignal.protocol.InvalidKeyException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.whispersystems.signalservice.api.push.exceptions.NotFoundException; import org.whispersystems.signalservice.api.storage.RecordIkm; import org.whispersystems.signalservice.api.storage.SignalStorageManifest; import org.whispersystems.signalservice.api.storage.SignalStorageRecord; @@ -348,8 +349,12 @@ public class StorageHelper { ) throws IOException, RetryLaterException { logger.debug("Force pushing local state to remote storage"); - final var currentVersion = handleResponseException(dependencies.getStorageServiceRepository() - .getManifestVersion()); + long currentVersion; + try { + currentVersion = handleResponseException(dependencies.getStorageServiceRepository().getManifestVersion()); + } catch (NotFoundException e) { + currentVersion = 0; + } final var newVersion = currentVersion + 1; final var newStorageRecords = new ArrayList(); final Map newContactStorageIds;