Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

未关闭
#59 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 5 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
docker, go
领域
api, backend

调研方向

从 Evolution GO Manager lab 使用的 /send/button 和 /send/list 入口开始,然后将它们的行为与 v0.7.1 中的 /send/carousel 进行比较。复现 consumer-WhatsApp 矩阵,并检查 server 或 whatsmeow 的 debug 输出中是否有确认或拒绝。完成的标准是确定这是协议限制还是实现 bug,然后记录该限制,或定义所请求的响应警告。

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
Go
星标
890
派生
473
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

evolution-foundation/evolution-go 的其他 Issue

查看 evolution-foundation/evolution-go 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。