Outgoing messages not respecting chat's disappearing-messages timer → recipient sees "This message will not disappear" / older-version warning (v0.7.1)
Maintainers usually reply within 9 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
Research direction
Start by tracing the /send/* endpoints and how the whatsmeow app-state disappearing-message setting is synchronized and applied. Verify the behavior with a chat using disappearing messages, then confirm sent messages carry the matching ephemeral expiration without showing the recipient warning.
Written by the indexing model from the issue text.
Description
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
- On a consumer WhatsApp, enable disappearing messages for a chat with the connected instance's number.
- Send a plain message from the API:
POST /send/text { "number": "<recipient>", "text": "hello" } - Server responds
HTTP 200with a real message ID ("message":"success",Type: ExtendedTextMessage). - 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 optionalexpiration(seconds) field so callers can set it explicitly?
Notes
- Reproduced live; all
/send/*calls return200 successregardless, 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.
- Dominant language
- Go
- Stars
- 929
- Forks
- 499
- Avg merge
- 5m
- Merged PRs (30d)
- 1
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from evolution-foundation/evolution-go
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
evolution-foundation/evolution-go#193 ·
Maintainers usually reply within 9 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
evolution-foundation/evolution-go#104 ·
Maintainers usually reply within 9 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
evolution-foundation/evolution-go#101 ·
Maintainers usually reply within 9 days
-
POST /group/participant always returns 400 "participants is required and cannot be empty" (wrong validation middleware on route)Possibly taken A pull request linked to this issue is open or already merged. Openbug
Difficulty 1/5 Under an hour Newbie friendliness 88/100
evolution-foundation/evolution-go#97 · 2 comments ·
Maintainers usually reply within 9 days
-
enhancement
Difficulty 3/5 1-2 days Newbie friendliness 42/100
evolution-foundation/evolution-go#217 ·
Maintainers usually reply within 9 days
All issues in evolution-foundation/evolution-go
Similar issues
-
product/backlog
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
TencentBlueKing/bk-nodemgr#3645 ·
Maintainers usually reply within 1 day
-
docs(prompt): filer socket fragment hardcodes an issue-intent cap of 8 that Chore runs overrideOpenagent-butler-finding chore
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jordansmall/spindrift#5128 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
Maintainers usually reply within 2 days
-
License GOtome under Apache 2.0 instead of AGPL-3.0Possibly taken @praetorianer777 claimed this today. Openarea:workflow documentation
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
praetorianer777/GoTome#212 ·
Maintainers usually reply within 1 day
-
ci: pin Go version in Build and Unit Test workflows (>=1.26.6 floats to 1.27.2 and breaks golangci-lint)Possibly taken @leninmehedy claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 87/100
hashgraph/solo-weaver#1255 ·
Maintainers usually reply within 1 day