Execution bug whatsapp trigger

Hi team,

I’m experiencing a mismatch between what happens on WhatsApp and what n8n shows in Executions.

Environment:

  • n8n v1.104.1

Simple echo workflow: WhatsApp Trigger → (optional Edit/Set) → Send message (WhatsApp).

Goal: when I receive a message, the workflow sends the same text back.

What I see:

  • In practice, WhatsApp replies correctly (e.g., I send “hola” and I receive “hola” back).

However, in Executions the run appears as an error, or the graph says the flow never reached the “Send message” node—as if the reply was never sent.

  • The Trigger input changes between runs: on the first run I can see the user message in the JSON (message/messages). On the next run that field is missing, which seems to be why Executions shows that the message wasn’t sent.
  • Because of this, Executions doesn’t reflect what’s actually happening, and I can’t reliably validate mappings or debug.

Questions:

  1. Is this a known issue with the WhatsApp nodes or the Executions view, or is it a configuration error on my side?
  2. Why would the WhatsApp Trigger input structure change between consecutive runs in such a simple echo test?
  3. Is there a recommended way to ensure the execution always records the actual inbound data?

I can provide screenshots, logs, or a minimal workflow export if needed.
Thanks for your help!

I am using n8n online
this is my workflow



Hi there, i think this issue happens because the way of how the whatsapp Trigger gets triggered

By default,the whatsapp triggerd - On Message, gets triggered for every event that is happening on the message (message gets deleted, delivered, read, failed,sent], so most likely, the whatsapp trigger got triggered for one of those event where they do not provide the json message text body, which what you are looking on ur filter node

if you only want it to be triggered on a certain event only, like lets say only when its delivered, then you can set it up here

Thanks for your response. But i still having the same problem.

when I do not put the workflow active and i use the buttom execute workflow it work well and the trigger provide me the body message look


After this I said ok it will work, but i put active and i make some test

okay that work well. Now let see the excutions


there is not the bodymessage but i mean it not make sense. in the whatsapp chat the “bot” send to me the message so in the excutions must show me that everything is fine but this is not the case.

Hi there @Eliot ,
then let’s dive in a little deeper, can you give me a screenshot of the failed executions, give me the screenshot of inside the whatsapp trigger and let’s see how the data looks like and why is the message body is not there

my guess is that the whatsapp trigger is still executing on some other events

especially because it’s in production mode, where it’s hearing all the events always, all the time,

where its different when you test it, where it only hears the event when you click the execute button

okay.

this is the logs in the test; no production


it works well

and let see the logs in a failed excution


as you can see the filter node discarded the flow and it says that the message was not send but the recipient_Id is the same that i used in the test.

look there is the input in the production flow


and this is the input in the test flow

the difference is that in the test there is a body message and in the production is mising. Why?

I have a similar issue. However, since I use Webhook Node, when I test the execution, the scripts are displayed with a delay. The WhatsApp message was delivered, but the n8n interface still shows the node’s execution steps.

Hi there @Eliot , you can see for yourself that the one that gets discarded on the production logs is with the event type Read, you can see that in the status.statuses[0] it says Read

As i have told you in the above, that production hears every event that happens in a message, including when a message get a read from the receiver of the message,

The only reason it’s not showing when you are testing, is because as i said, testing does not hear everything, it only hears the event when you want them to

If you want to trigger the failing on the test, make sure the webhook only receives read event and then send a message, and then execute the workflow, and read the message, that should get you your error

So this is definitely not a bug

Thanks @fahmiiireza , I’ve noticed that each time the workflow is triggered via the WhatsApp trigger, it executes four times. In one of those executions, the message is actually present. So, while this might not technically be a bug, it does cause issues in other workflows.

Right now, I have a simple workflow with an AI agent that uses RAG. When I connect it to a message node triggered through the terminal, everything works perfectly — the memory works, the prompt runs as expected. I have the prompt set up so that when a question is asked, it retrieves information from its knowledge bases, and through the terminal trigger, it works exactly as intended.

The problem starts when I connect it to WhatsApp — that’s when simple memory stops working. And this also breaks the RAG functionality — the agent no longer responds as configured.

Why could this be happening?

About three months ago, I had this same workflow working perfectly. It’s only after some recent updates that it started failing.

hi there, you can just add an if node right after the whatsapp trigger to check if the data contains the message, if it is then continue the workflow, if it is not, just don’t do anything

this way, it shouldnt cause issue with your simple memory because the execution that will go through the rag agent is the data that has the message

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.