]> nmode's Git Repositories - signal-cli/commitdiff
Ignore failure when uploading PNI prekeys
authorAsamK <asamk@gmx.de>
Sun, 25 Feb 2024 16:46:09 +0000 (17:46 +0100)
committerAsamK <asamk@gmx.de>
Sun, 25 Feb 2024 16:46:09 +0000 (17:46 +0100)
Can happen if PNI identity key hasn't been sent to the server yet.

lib/src/main/java/org/asamk/signal/manager/helper/PreKeyHelper.java

index a2b4dddef21c586a3193c2e15d3802ad894873e3..59ecf16019191be83fbed3ead56aa3e557cbbf05 100644 (file)
@@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory;
 import org.whispersystems.signalservice.api.account.PreKeyUpload;
 import org.whispersystems.signalservice.api.push.ServiceIdType;
 import org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException;
+import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException;
 import org.whispersystems.signalservice.internal.push.OneTimePreKeyCounts;
 
 import java.io.IOException;
@@ -171,6 +172,11 @@ public class PreKeyHelper {
         } catch (AuthorizationFailedException e) {
             // This can happen when the primary device has changed phone number
             logger.warn("Failed to updated pre keys: {}", e.getMessage());
+        } catch (NonSuccessfulResponseCodeException e) {
+            if (serviceIdType != ServiceIdType.PNI || e.getCode() != 422) {
+                throw e;
+            }
+            logger.warn("Failed to update PNI pre keys, ignoring.");
         }
         return needsReset;
     }