]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/SignalAccountFiles.java
Show better error message when signal-cli version is outdated
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / SignalAccountFiles.java
index f397b5348e769b2985723eddc6f38b405e9fc586..9d0b344a97c3c8be4fbf2c8494e2098fbd945834 100644 (file)
@@ -12,6 +12,7 @@ import org.asamk.signal.manager.util.KeyUtils;
 import org.signal.libsignal.protocol.util.KeyHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.whispersystems.signalservice.api.push.exceptions.DeprecatedVersionException;
 
 import java.io.File;
 import java.io.IOException;
@@ -65,6 +66,9 @@ public class SignalAccountFiles {
             } catch (NotRegisteredException | IOException | AccountCheckException e) {
                 logger.warn("Ignoring {}: {} ({})", a.number(), e.getMessage(), e.getClass().getSimpleName());
                 return null;
+            } catch (Throwable e) {
+                logger.error("Failed to load {}: {} ({})", a.number(), e.getMessage(), e.getClass().getSimpleName());
+                throw e;
             }
         }).filter(Objects::nonNull).toList();
 
@@ -111,6 +115,9 @@ public class SignalAccountFiles {
 
         try {
             manager.checkAccountState();
+        } catch (DeprecatedVersionException e) {
+            manager.close();
+            throw new AccountCheckException("signal-cli version is too old for the Signal-Server, please update.");
         } catch (IOException e) {
             manager.close();
             throw new AccountCheckException("Error while checking account " + number + ": " + e.getMessage(), e);
@@ -149,6 +156,7 @@ public class SignalAccountFiles {
             var aciIdentityKey = KeyUtils.generateIdentityKeyPair();
             var pniIdentityKey = KeyUtils.generateIdentityKeyPair();
             var registrationId = KeyHelper.generateRegistrationId(false);
+            var pniRegistrationId = KeyHelper.generateRegistrationId(false);
 
             var profileKey = KeyUtils.createProfileKey();
             var account = SignalAccount.create(pathConfig.dataPath(),
@@ -158,6 +166,7 @@ public class SignalAccountFiles {
                     aciIdentityKey,
                     pniIdentityKey,
                     registrationId,
+                    pniRegistrationId,
                     profileKey,
                     trustNewIdentity);