Skip to content

Commit f46e8b1

Browse files
committed
messages-recv: handle newsletter and unavailable message acks
1 parent 23f1268 commit f46e8b1

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/Socket/messages-recv.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)