]> nmode's Git Repositories - signal-cli/commitdiff
Convert RateLimitException to a network failure send message result
authorAsamK <asamk@gmx.de>
Fri, 10 Sep 2021 15:48:44 +0000 (17:48 +0200)
committerAsamK <asamk@gmx.de>
Fri, 10 Sep 2021 15:48:44 +0000 (17:48 +0200)
lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java

index 89e3eba2a16f9aeb317e8d7565ece69b7414fab9..7b37f205822df663368c86093b109051bed41bcd 100644 (file)
@@ -23,6 +23,7 @@ import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
 import org.whispersystems.signalservice.api.push.exceptions.ProofRequiredException;
+import org.whispersystems.signalservice.api.push.exceptions.RateLimitException;
 import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
 
 import java.io.IOException;
@@ -285,6 +286,9 @@ public class SendHelper {
             }
         } catch (ProofRequiredException e) {
             return SendMessageResult.proofRequiredFailure(address, e);
+        } catch (RateLimitException e) {
+            logger.warn("Sending failed due to rate limiting from the signal server: {}", e.getMessage());
+            return SendMessageResult.networkFailure(address);
         } catch (org.whispersystems.signalservice.api.crypto.UntrustedIdentityException e) {
             return SendMessageResult.identityFailure(address, e.getIdentityKey());
         }