diff --git a/lib/tunnelbroker/peer-to-peer-context.js b/lib/tunnelbroker/peer-to-peer-context.js --- a/lib/tunnelbroker/peer-to-peer-context.js +++ b/lib/tunnelbroker/peer-to-peer-context.js @@ -78,9 +78,22 @@ const { olmAPI, sqliteAPI } = getConfig(); await olmAPI.initializeCryptoAccount(); + + const sentMessagesMap: { [messageID: string]: boolean } = {}; + let messages; if (messageIDs) { messages = await sqliteAPI.getOutboundP2PMessagesByID(messageIDs); + if (messageIDs.length !== messages.length) { + const dbMessageIDsSet = new Set( + messages.map(message => message.messageID), + ); + for (const messageID of messageIDs) { + if (!dbMessageIDsSet.has(messageID)) { + sentMessagesMap[messageID] = true; + } + } + } } else { const allMessages = await sqliteAPI.getAllOutboundP2PMessages(); messages = allMessages.filter(message => message.supportsAutoRetry); @@ -95,8 +108,6 @@ } } - const sentMessagesMap: { [messageID: string]: boolean } = {}; - const sendMessageToPeer = async ( message: OutboundP2PMessage, ): Promise => {