Describe the bug
Sometimes the first message from a new contact who clicks a Click-to-WhatsApp (Facebook/Instagram) ad never reaches WAHA. The message shows on the linked phone and in WhatsApp Web, but WAHA emits no message / message.any webhook for it. It also doesn't come back from GET /api/{session}/chats/{chatId}/messages, whether we query the @c.us id or the @lid id.
This looks like #1922, which was fixed in 2026.4.3, and like #2074 and #1383. We still see it on 2026.8.2 with NOWEB.
What we saw on one affected chat:
- The contact's first message (the ad's prefilled text) arrived on the phone and in WhatsApp Web. WAHA emitted no inbound event for it: no
message, no message.any with fromMe: false.
- The session was running normally at that moment. It emitted other
message.any and message.ack events for other chats within the same minute.
- A few minutes later, the business replied to that contact from the phone app. WAHA did emit
message.any (fromMe: true, source: "app", chat id <id>@lid, _data.key.remoteJidAlt = <phone>@s.whatsapp.net) and message.ack for that reply.
- The drop is intermittent. Other first messages from ad contacts that same day, all with
@lid senders and the same prefilled text, were delivered normally as message.any with fromMe: false.
So the session was connected and knew about the chat, but the contact's first inbound message was silently skipped.
Version
{
"version": "2026.8.2",
"engine": "NOWEB",
"tier": "CORE",
"browser": null,
"platform": "linux/x64"
}
Session config: noweb.store.enabled: true, noweb.store.fullSync: true. Webhook events: session.status, message, message.any, message.ack.
Steps
To Reproduce
- Link a WhatsApp Business number to a NOWEB session with the store enabled.
- Run a Click-to-WhatsApp ad on Facebook/Instagram that points at that number.
- A new contact who has never chatted with the number clicks the ad and sends the prefilled message.
- The message appears on the phone and in WhatsApp Web.
- For some of these contacts, WAHA emits no
message / message.any event, and the message isn't in GET /api/{session}/chats/{chatId}/messages.
Expected behavior
Every inbound message the phone receives, including the first message from an ad contact with an @lid sender, should be emitted as message / message.any and stored in the NOWEB store.
Requests - Responses
GET /api/{session}/chats/{phone}@c.us/messages?limit=100&offset=0&downloadMedia=false → 200 []
The only webhook events for that chat were our own reply:
{
"event": "message.any",
"payload": {
"fromMe": true,
"source": "app",
"from": "<id>@lid",
"_data": {
"key": { "remoteJidAlt": "<phone>@s.whatsapp.net" },
"message": { "extendedTextMessage": { "text": "<reply text>" } }
}
}
}
Additional context
Is there a log level or setting that would surface the decryption failure or dropped event, so we can send logs for the next occurrence?
Describe the bug
Sometimes the first message from a new contact who clicks a Click-to-WhatsApp (Facebook/Instagram) ad never reaches WAHA. The message shows on the linked phone and in WhatsApp Web, but WAHA emits no
message/message.anywebhook for it. It also doesn't come back fromGET /api/{session}/chats/{chatId}/messages, whether we query the@c.usid or the@lidid.This looks like #1922, which was fixed in
2026.4.3, and like #2074 and #1383. We still see it on2026.8.2with NOWEB.What we saw on one affected chat:
message, nomessage.anywithfromMe: false.message.anyandmessage.ackevents for other chats within the same minute.message.any(fromMe: true,source: "app", chat id<id>@lid,_data.key.remoteJidAlt=<phone>@s.whatsapp.net) andmessage.ackfor that reply.@lidsenders and the same prefilled text, were delivered normally asmessage.anywithfromMe: false.So the session was connected and knew about the chat, but the contact's first inbound message was silently skipped.
Version
{ "version": "2026.8.2", "engine": "NOWEB", "tier": "CORE", "browser": null, "platform": "linux/x64" }Session config:
noweb.store.enabled: true,noweb.store.fullSync: true. Webhook events:session.status,message,message.any,message.ack.Steps
To Reproduce
message/message.anyevent, and the message isn't inGET /api/{session}/chats/{chatId}/messages.Expected behavior
Every inbound message the phone receives, including the first message from an ad contact with an
@lidsender, should be emitted asmessage/message.anyand stored in the NOWEB store.Requests - Responses
GET /api/{session}/chats/{phone}@c.us/messages?limit=100&offset=0&downloadMedia=false→200 []The only webhook events for that chat were our own reply:
{ "event": "message.any", "payload": { "fromMe": true, "source": "app", "from": "<id>@lid", "_data": { "key": { "remoteJidAlt": "<phone>@s.whatsapp.net" }, "message": { "extendedTextMessage": { "text": "<reply text>" } } } } }Additional context
@lidcontacts coming from ads.2026.4.3, after the [NOWEB] - First message from the ghost contact (Facebook advertising) #1922 fix.Is there a log level or setting that would surface the decryption failure or dropped event, so we can send logs for the next occurrence?