From c14243732034e9a41705c3ef00b42080178c2f86 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Mon, 27 Aug 2018 20:59:44 +0200 Subject: [PATCH] Create new message for correction if the original is not available Fixes #1172 --- src/converse-chatboxes.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/converse-chatboxes.js b/src/converse-chatboxes.js index be234f617..714deeaed 100644 --- a/src/converse-chatboxes.js +++ b/src/converse-chatboxes.js @@ -295,8 +295,16 @@ const replace = sizzle(`replace[xmlns="${Strophe.NS.MESSAGE_CORRECT}"]`, stanza).pop(); if (replace) { const msgid = replace && replace.getAttribute('id') || stanza.getAttribute('id'), - message = msgid && this.messages.findWhere({msgid}), - older_versions = message.get('older_versions') || []; + message = msgid && this.messages.findWhere({msgid}); + + if (!message) { + // XXX: Looks like we received a correction for a + // non-existing message, probably due to MAM. + // Not clear what can be done about this... we'll + // just create it as a separate message for now. + return false; + } + const older_versions = message.get('older_versions') || []; older_versions.push(message.get('message')); message.save({ 'message': _converse.chatboxes.getMessageBody(stanza),