From a754eb6fafb568ef8904bf8b9276856e3dfd36e2 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 21 May 2023 11:15:49 +0200 Subject: [PATCH] Better logging for registration failure --- .../manager/RegistrationManagerImpl.java | 24 ++++++++++++------- .../signal/commands/RegisterCommand.java | 3 ++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java b/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java index 2951f1a7..0e3c9af0 100644 --- a/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java +++ b/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java @@ -39,6 +39,7 @@ import org.whispersystems.signalservice.api.push.ACI; import org.whispersystems.signalservice.api.push.PNI; import org.whispersystems.signalservice.api.push.SignalServiceAddress; import org.whispersystems.signalservice.api.push.exceptions.AlreadyVerifiedException; +import org.whispersystems.signalservice.api.push.exceptions.DeprecatedVersionException; import org.whispersystems.signalservice.internal.push.VerifyAccountResponse; import org.whispersystems.signalservice.internal.util.DynamicCredentialsProvider; @@ -114,16 +115,21 @@ class RegistrationManagerImpl implements RegistrationManager { throw new IOException("Account is registered in another environment: " + account.getServiceEnvironment()); } - if (account.getAci() != null && attemptReactivateAccount()) { - return; - } + try { + if (account.getAci() != null && attemptReactivateAccount()) { + return; + } - String sessionId = NumberVerificationUtils.handleVerificationSession(accountManager, - account.getSessionId(account.getNumber()), - id -> account.setSessionId(account.getNumber(), id), - voiceVerification, - captcha); - NumberVerificationUtils.requestVerificationCode(accountManager, sessionId, voiceVerification); + String sessionId = NumberVerificationUtils.handleVerificationSession(accountManager, + account.getSessionId(account.getNumber()), + id -> account.setSessionId(account.getNumber(), id), + voiceVerification, + captcha); + NumberVerificationUtils.requestVerificationCode(accountManager, sessionId, voiceVerification); + } catch (DeprecatedVersionException e) { + logger.debug("Signal-Server returned deprecated version exception", e); + throw e; + } } @Override diff --git a/src/main/java/org/asamk/signal/commands/RegisterCommand.java b/src/main/java/org/asamk/signal/commands/RegisterCommand.java index 5ba66d7a..3ff6dc09 100644 --- a/src/main/java/org/asamk/signal/commands/RegisterCommand.java +++ b/src/main/java/org/asamk/signal/commands/RegisterCommand.java @@ -92,7 +92,8 @@ public class RegisterCommand implements RegistrationCommand, JsonRpcRegistration } catch (NonNormalizedPhoneNumberException e) { throw new UserErrorException("Failed to register: " + e.getMessage(), e); } catch (IOException e) { - throw new IOErrorException("Failed to register: " + e.getMessage(), e); + throw new IOErrorException("Failed to register: %s (%s)".formatted(e.getMessage(), + e.getClass().getSimpleName()), e); } } -- 2.50.1