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

Outgoing messages not respecting chat's disappearing-messages timer → recipient sees "This message will not disappear" / older-version warning (v0.7.1)

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

维护者通常 5 天内回复

还没有人认领这个 Issue。

评估

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

调研方向

首先跟踪 /send/* 端点,以及 whatsmeow app-state disappearing-message 设置的同步和应用方式。使用启用消失消息的聊天验证其行为,然后确认已发送的消息携带匹配的 ephemeral 过期时间,且不会显示收件人警告。

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

描述

Summary

When a recipient's chat has disappearing messages enabled, messages sent through any /send/* endpoint arrive without the chat's ephemeral timer. The recipient's WhatsApp then shows an info ("i") badge on the message and the dialog:

"This message will not disappear."
"The person may be using an older version of WhatsApp."

The message is delivered and readable — this is cosmetic — but it makes API-sent messages look broken/untrustworthy to end users, and the "older version of WhatsApp" wording is misleading (the sender is the API).

Environment
  • Evolution Go v0.7.1 (latest tag, self-hosted)
  • whatsmeow-based stack
  • Recipient: regular/consumer WhatsApp with disappearing messages turned on for that chat
Steps to reproduce
  1. On a consumer WhatsApp, enable disappearing messages for a chat with the connected instance's number.
  2. Send a plain message from the API:
    POST /send/text
    { "number": "<recipient>", "text": "hello" }
    
  3. Server responds HTTP 200 with a real message ID ("message":"success", Type: ExtendedTextMessage).
  4. On the recipient device, the message arrives with an info "i" badge; tapping it shows "This message will not disappear / the person may be using an older version of WhatsApp."
Expected behavior

Outgoing messages should inherit the chat's disappearing-messages timer, i.e. be sent with the proper ephemeralExpiration / ContextInfo.Expiration (and EphemeralSettingTimestamp) matching the chat's app-state setting — so no warning is shown.

This is the same class of bug documented in Baileys: WhiskeySockets/Baileys#1687 — "Send message is not respecting chat disappearing mode" → "The message should be sent with chat default disappearing mode if ephemeralExpiration option is not set."

Suggested fix / questions
  • Does the instance sync chat app-state (disappearing timer) and apply it on send? It appears not to.
  • Could /send/* either (a) auto-apply the chat's synced ephemeral timer, or (b) expose an optional expiration (seconds) field so callers can set it explicitly?
Notes
  • Reproduced live; all /send/* calls return 200 success regardless, so the HTTP layer gives no signal that the ephemeral marker is missing.
  • Low severity (cosmetic), but affects perceived reliability of API-sent messages to any contact using disappearing messages.
主要语言
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 摘要。