Summary
Every message sent via /send/text (and likely all /send/* endpoints) uses the instance UUID as the WhatsApp message ID instead of generating a unique ID per message. This causes WhatsApp to silently deduplicate all messages after the first one sent to each recipient.
What did you do?
Sent multiple text messages to the same recipient via /send/text.
What did you expect?
Each message delivered with a unique WA message ID.
What did you observe?
Only the first message is delivered. Subsequent messages appear to send (HTTP 200, SendText successful) but are never delivered to the recipient's device (ServerID: 0, no delivery receipt).
Evidence from logs
Sending message to 553198982288@s.whatsapp.net with ID c2e925ee-25c1-46ff-bdbf-9bc689421358
...
Message sent successfully! ServerID: 0
Every single send — regardless of recipient or content — logs the same ID: the instance UUID c2e925ee-25c1-46ff-bdbf-9bc689421358.
The whatsmeow ACK waiter confirms this is the actual WA protocol message ID:
receiveResponse: found waiter for id=c2e925ee-25c1-46ff-bdbf-9bc689421358, tag=ack
Passing messageId in the request body has no effect — the response Info.ID is still the instance UUID.
Root cause
In the send handler, the id field from the request body (the instanceId) is being passed as the WhatsApp message ID to whatsmeow's SendMessage instead of calling client.GenerateMessageID().
Expected fix
Generate a unique random message ID for each outgoing message using client.GenerateMessageID() (or whatsmeow.GenerateMessageID()).
Version
- Evolution GO:
0.7.1
- Docker:
evoapicloud/evolution-go:0.7.1
- Environment: Docker on Linux
Additional context
messageId field in request body is silently ignored. The API should either use a caller-supplied ID or auto-generate one per message — never reuse the instance UUID.
Summary
Every message sent via
/send/text(and likely all/send/*endpoints) uses the instance UUID as the WhatsApp message ID instead of generating a unique ID per message. This causes WhatsApp to silently deduplicate all messages after the first one sent to each recipient.What did you do?
Sent multiple text messages to the same recipient via
/send/text.What did you expect?
Each message delivered with a unique WA message ID.
What did you observe?
Only the first message is delivered. Subsequent messages appear to send (HTTP 200,
SendText successful) but are never delivered to the recipient's device (ServerID: 0, no delivery receipt).Evidence from logs
Every single send — regardless of recipient or content — logs the same ID: the instance UUID
c2e925ee-25c1-46ff-bdbf-9bc689421358.The whatsmeow ACK waiter confirms this is the actual WA protocol message ID:
Passing
messageIdin the request body has no effect — the responseInfo.IDis still the instance UUID.Root cause
In the send handler, the
idfield from the request body (the instanceId) is being passed as the WhatsApp message ID to whatsmeow'sSendMessageinstead of callingclient.GenerateMessageID().Expected fix
Generate a unique random message ID for each outgoing message using
client.GenerateMessageID()(orwhatsmeow.GenerateMessageID()).Version
0.7.1evoapicloud/evolution-go:0.7.1Additional context
messageIdfield in request body is silently ignored. The API should either use a caller-supplied ID or auto-generate one per message — never reuse the instance UUID.