From 3c91f99008b11a0390d20ee85734454f8737cee1 Mon Sep 17 00:00:00 2001 From: otsmr Date: Fri, 24 Apr 2026 23:38:07 +0200 Subject: [PATCH] downgrade duplicated error message and fixing new upload of message --- lib/src/services/api/server_messages.api.dart | 6 +++++- lib/src/services/signal/encryption.signal.dart | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/src/services/api/server_messages.api.dart b/lib/src/services/api/server_messages.api.dart index a94f9b6e..f9e3136a 100644 --- a/lib/src/services/api/server_messages.api.dart +++ b/lib/src/services/api/server_messages.api.dart @@ -226,11 +226,15 @@ Future<(EncryptedContent?, PlaintextContent?)> handleEncryptedMessageRaw( ); if (encryptedContent == null) { + if (decryptionErrorType == null) { + // Duplicate message + return (null, null); + } return ( null, PlaintextContent() ..decryptionErrorMessage = (PlaintextContent_DecryptionErrorMessage() - ..type = decryptionErrorType!), + ..type = decryptionErrorType), ); } diff --git a/lib/src/services/signal/encryption.signal.dart b/lib/src/services/signal/encryption.signal.dart index 96aee2b5..a50b7ca5 100644 --- a/lib/src/services/signal/encryption.signal.dart +++ b/lib/src/services/signal/encryption.signal.dart @@ -59,7 +59,13 @@ signalDecryptMessage( return (EncryptedContent.fromBuffer(plaintext), null); } on InvalidKeyIdException catch (e) { Log.warn(e); - return (null, PlaintextContent_DecryptionErrorMessage_Type.PREKEY_UNKNOWN); + return ( + null, + PlaintextContent_DecryptionErrorMessage_Type.PREKEY_UNKNOWN, + ); + } on DuplicateMessageException catch (e) { + Log.info(e.toString()); + return (null, null); } on InvalidMessageException catch (e) { if (!resyncedUsers.contains(fromUserId)) { if (await handleSessionResync(fromUserId)) {