Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Button and List messages do not render on consumer WhatsApp — only Carousel works (v0.7.1)

Aperta
#59 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
docker, go
Ambito
api, backend

Direzione di ricerca

Inizia dai punti di ingresso /send/button e /send/list utilizzati dal laboratorio Evolution GO Manager, quindi confronta il loro comportamento con /send/carousel in v0.7.1. Riproduci la matrice consumer-WhatsApp e ispeziona l’output di debug del server o di whatsmeow alla ricerca di conferme o rifiuti. Il lavoro è completato quando si determina se si tratta di una restrizione del protocollo o di un bug di implementazione, documentando quindi la limitazione o definendo l’avviso nella risposta richiesto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug
Welcome!
  • Yes, I have searched for similar issues on GitHub and found none.
What did you do?

Tested every interactive send endpoint of evolution-go against a personal (non-Business) consumer WhatsApp recipient, using the Evolution GO Manager's per-instance lab modal ("Testar botões, lista e carrossel"), which constructs the official canonical payloads for each variant.

Specifically I ran:

  • /send/text — plain text (control)
  • /send/button — Reply × 1, Reply × 3 (server max), CTA Copy, CTA URL, CTA Call, PIX alone, CTAs grouped (copy + url + call) → 7 variants
  • /send/list — single sections list → 1 variant
  • /send/carousel — 4 cards REPLY, 4 cards URL, 3 cards CALL, 4 cards COPY → 4 variants

Same sender instance, same recipient phone, runs spread over ~5 minutes.

Reproduction
  1. Pair an instance with a personal WhatsApp number (not Business / WABA).
  2. Open the Manager → Instances page → click the "Testar botões, lista e carrossel" lab icon on the instance.
  3. Enter a personal phone number (not on WABA / Cloud API).
  4. Run each of the 9 button + list modes one after another.
  5. Re-run with each of the 4 carousel modes.
  6. Watch what the recipient phone actually displays.
What did you expect?

I expected all variants to render on the recipient's WhatsApp because:

  1. The API returned 200 OK with IsFromMe: true and a real WhatsApp message ID for every single send (so the sender's session successfully emitted the frame to WhatsApp's servers).
  2. The Manager UI's lab modal explicitly bills itself as a delivery test tool for these endpoints — if these payloads weren't expected to work, they shouldn't be in the lab.
  3. The plain-text /send/text control delivered cleanly to the same recipient, so the device + recipient pair is healthy.
What did you observe instead of what you expected?

Only /send/carousel actually delivers usable content to consumer WhatsApp. Every /send/button variant arrives as a placeholder asking the recipient to update WhatsApp, and /send/list does not arrive at all.

Endpoint Variant (from Manager UI lab) API response Receiver result
/send/text plain text 200 OK ✅ Rendered cleanly
/send/button Reply × 1 200 OK ❌ "Update WhatsApp…" placeholder
/send/button Reply × 3 (server max) 200 OK ❌ "Update WhatsApp…" placeholder
/send/button CTA Copy 200 OK ❌ "Update WhatsApp…" placeholder
/send/button CTA URL 200 OK ❌ "Update WhatsApp…" placeholder
/send/button CTA Call 200 OK ❌ "Update WhatsApp…" placeholder
/send/button PIX alone 200 OK ❌ "Update WhatsApp…" placeholder
/send/button CTAs grouped (copy + url + call) 200 OK ❌ "Update WhatsApp…" placeholder
/send/list Single sections list 200 OK ❌ Not delivered at all
/send/carousel 4 cards REPLY + image headers 200 OK ✅ Renders, all buttons work
/send/carousel 4 cards URL 200 OK ✅ Renders (URL button serialization is its own issue, see #51)
/send/carousel 3 cards CALL 200 OK ✅ Renders
/send/carousel 4 cards COPY 200 OK ✅ Renders

In every case the API returns 200 with a real message ID — the difference is entirely on the WhatsApp client side.

If this is by design (WhatsApp restricting these frame types for unofficial-API sessions), it would help operators a lot if the README / changelog said so explicitly. Right now the lab modal happily ships these payloads as if they were expected to work for any recipient.

Screenshots/Videos

No response

Which version are you using?

evolution-go v0.7.1 (Docker)

What is your environment?

Docker

If applicable, paste the log output

No response

Additional Notes
Sender / recipient setup
  • Sender: personal WhatsApp number connected via QR (not Business)
  • Recipient: personal WhatsApp number on Android, current app version, not on Business / WABA / Cloud API
  • evolution-go reachable on a public host
  • Same sender → same recipient pair for ALL tests in the matrix
Related
  • Issue #51 — "Carousel Message Buttons Serialization Bug" — affects URL/CALL/COPY button params inside carousels in v0.7.1.
Questions for maintainers
  1. Is the button/list non-delivery to consumer WhatsApp a known WhatsApp protocol restriction (e.g. they only accept those frame types from Business-API sessions)?
  2. If yes — would you consider documenting this in the README and/or returning a warning header on the response (e.g. X-Whatsapp-Delivery-Risk: high) so callers can surface it to their users?
  3. If no — is there a server log or whatsmeow debug toggle I can enable to capture the WhatsApp ack / rejection for these messages? Happy to run a follow-up test.

Thanks for the project — carousel works reliably and is genuinely useful for our use case.

Lingua principale
Go
Stelle
929
Fork
499
Merge medio
5m
PR unite (30g)
1

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di evolution-foundation/evolution-go

Tutte le issue di evolution-foundation/evolution-go

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.