git » sdk » commit 06fad84

OMEMO: Return undecryptable message from MAM when decryption error occurs (fixes exception)

author Matthew Wild
2025-05-24 14:51:50 UTC
committer Stephen Paul Weber
2025-09-29 13:43:04 UTC
parent 285d03f8786d8633a6f765d22ed7b50d3865e23e

OMEMO: Return undecryptable message from MAM when decryption error occurs (fixes exception)

snikket/MessageSync.hx +9 -1

diff --git a/snikket/MessageSync.hx b/snikket/MessageSync.hx
index 70229d8..e01b795 100644
--- a/snikket/MessageSync.hx
+++ b/snikket/MessageSync.hx
@@ -108,7 +108,15 @@ class MessageSync {
 					return msg;
 				}, (err) -> {
 					trace("MAM: Decryption failed: "+err);
-					return null;
+					final msg = Message.fromStanza(originalMessage, client.jid, (builder, stanza) -> {
+							builder.serverId = result.attr.get("id");
+							builder.serverIdBy = serviceJID;
+							if (timestamp != null && builder.timestamp == null) builder.timestamp = timestamp;
+							return contextHandler(builder, stanza);
+						},
+						new EncryptionInfo(DecryptionFailure, NS.OMEMO, "OMEMO", "internal-error", Std.string(err))
+					).parsed;
+					return msg;
 				}));
 #end
 				return EventHandled;