diff --git a/lib/shared/dm-ops/process-dm-ops.js b/lib/shared/dm-ops/process-dm-ops.js --- a/lib/shared/dm-ops/process-dm-ops.js +++ b/lib/shared/dm-ops/process-dm-ops.js @@ -351,7 +351,19 @@ localMessageInfo.outboundP2PMessageIDs.length > 0 ) { processOutboundMessages(localMessageInfo.outboundP2PMessageIDs, dmOpID); - return promise; + try { + // This code should never throw. + return await promise; + } catch (e) { + invariant( + localMessageInfo.outboundP2PMessageIDs, + 'outboundP2PMessageIDs should be defined', + ); + return { + result: 'failure', + failedMessageIDs: localMessageInfo.outboundP2PMessageIDs, + }; + } } const outboundP2PMessages = await createMessagesToPeersFromDMOp( @@ -382,7 +394,17 @@ }, ); - return promise; + try { + // This code should never throw. + return await promise; + } catch (e) { + return { + result: 'failure', + failedMessageIDs: outboundP2PMessages.map( + message => message.messageID, + ), + }; + } }, [ allPeerUserIDAndDeviceIDs,