From 72e5532c6c08e566abc32df53080dc6f51f95221 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 10 Aug 2023 17:16:26 -0400 Subject: [PATCH] Perform a legacy session reset if you fail to decrypt a sync message. --- .../securesms/messages/MessageDecryptor.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt index 2aff246c15..fa7439eff7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt @@ -271,6 +271,16 @@ object MessageDecryptor { val receivedTimestamp: Long = System.currentTimeMillis() val sender: Recipient = Recipient.external(context, protocolException.sender) + if (sender.isSelf) { + Log.w(TAG, "${logPrefix(envelope)} Decryption error for a sync message! Enqueuing a session reset job.") + + followUpOperations += FollowUpOperation { + AutomaticSessionResetJob(sender.id, senderDevice, envelope.timestamp) + } + + return Result.Ignore(envelope, serverDeliveredTimestamp, followUpOperations) + } + followUpOperations += FollowUpOperation { buildSendRetryReceiptJob(envelope, protocolException, sender) }