#2267·waha

[NOWEB] - First message from Click-to-WhatsApp ad contact (@lid) not emitted and missing from API on 2026.8.2

Author: mkamra2000Created Sep 16, 2026Updated Sep 16, 2026

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

json
{
  "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

  1. Link a WhatsApp Business number to a NOWEB session with the store enabled.
  2. Run a Click-to-WhatsApp ad on Facebook/Instagram that points at that number.
  3. A new contact who has never chatted with the number clicks the ad and sends the prefilled message.
  4. The message appears on the phone and in WhatsApp Web.
  5. 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=false200 []

The only webhook events for that chat were our own reply:

json
{
  "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

  • Only the contact's first message is affected; later messages in the same chat come through. This matches #1383.
  • All affected senders are @lid contacts coming from ads.
  • #2074 reports the same drop with NOWEB on 2026.4.3, after the #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?