@@ -36,6 +36,7 @@ import {
3636 hkdf ,
3737 MISSING_KEYS_ERROR_TEXT ,
3838 NACK_REASONS ,
39+ NO_MESSAGE_FOUND_ERROR_TEXT ,
3940 unixTimestampSeconds ,
4041 xmppPreKey ,
4142 xmppSignedPreKey
@@ -1221,8 +1222,11 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
12211222 await decrypt ( )
12221223 // message failed to decrypt
12231224 if ( msg . messageStubType === proto . WebMessageInfo . StubType . CIPHERTEXT && msg . category !== 'peer' ) {
1224- if ( msg ?. messageStubParameters ?. [ 0 ] === MISSING_KEYS_ERROR_TEXT ) {
1225- return sendMessageAck ( node , NACK_REASONS . ParsingError )
1225+ if (
1226+ msg ?. messageStubParameters ?. [ 0 ] === MISSING_KEYS_ERROR_TEXT ||
1227+ msg . messageStubParameters ?. [ 0 ] === NO_MESSAGE_FOUND_ERROR_TEXT
1228+ ) {
1229+ return sendMessageAck ( node )
12261230 }
12271231
12281232 const errorMessage = msg ?. messageStubParameters ?. [ 0 ] || ''
@@ -1271,7 +1275,6 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
12711275 await sendMessageAck ( node , NACK_REASONS . UnhandledError )
12721276 } )
12731277 } else {
1274- await sendMessageAck ( node )
12751278 const isNewsletter = isJidNewsletter ( msg . key . remoteJid ! )
12761279 if ( ! isNewsletter ) {
12771280 // no type in the receipt => message delivered
@@ -1297,9 +1300,10 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => {
12971300 const isAnyHistoryMsg = getHistoryMsg ( msg . message ! )
12981301 if ( isAnyHistoryMsg ) {
12991302 const jid = jidNormalizedUser ( msg . key . remoteJid ! )
1300- await sendReceipt ( jid , undefined , [ msg . key . id ! ] , 'hist_sync' )
1303+ await sendReceipt ( jid , undefined , [ msg . key . id ! ] , 'hist_sync' ) // TODO: investigate
13011304 }
13021305 } else {
1306+ await sendMessageAck ( node )
13031307 logger . debug ( { key : msg . key } , 'processed newsletter message without receipts' )
13041308 }
13051309 }
0 commit comments