diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/AccountHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/AccountHelper.java index 573d2077..518ce28f 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/AccountHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/AccountHelper.java @@ -315,6 +315,7 @@ public class AccountHelper { Utils.mapKeys(pniRegistrationIds, Object::toString)))); }); + account.clearSessionId(); final var updatePni = PNI.parseOrThrow(result.first().getPni()); if (updatePni.equals(account.getPni())) { logger.debug("PNI is unchanged after change number"); diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java index 83040906..a797ce10 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java @@ -376,6 +376,7 @@ public class SignalAccount implements Closeable { trustSelfIdentity(ServiceIdType.ACI); trustSelfIdentity(ServiceIdType.PNI); getKeyValueStore().storeEntry(lastRecipientsRefresh, null); + clearSessionId(); } public void initDatabase() { @@ -1485,6 +1486,12 @@ public class SignalAccount implements Closeable { keyValueStore.storeEntry(verificationSessionId, sessionId); } + public void clearSessionId() { + final var keyValueStore = getKeyValueStore(); + keyValueStore.storeEntry(verificationSessionNumber, null); + keyValueStore.storeEntry(verificationSessionId, null); + } + public void setEncryptedDeviceName(final String encryptedDeviceName) { this.encryptedDeviceName = encryptedDeviceName; save();