-
-
Notifications
You must be signed in to change notification settings - Fork 52.8k
Description
Bug type
Behavior bug (incorrect output/state without crash)
Summary
When channels.telegram.streaming is set to "partial", Telegram clients display duplicate messages that are automatically deleted after a short delay.
Steps to reproduce
- Configure OpenClaw with
channels.telegram.streaming: "partial"(this is the default in some configurations) - Send messages via Telegram to the bot
- Observe that each message appears twice in the Telegram client
- After a brief delay (1-3 seconds), one duplicate is automatically deleted
Expected behavior
Messages should appear once without duplication, regardless of streaming mode.
Actual behavior
- Each message renders twice in the Telegram client
- One duplicate is auto-deleted by Telegram after arriving
- Creates visual flicker and confusion
OpenClaw version
2026.3.2
Operating system
macOS 26.3 (arm64)
Install method
Mac app
Logs, screenshots, and evidence
Impact and severity
Affected: Telegram 1:1 chats but not group conversations
Additional information
Full Bug Report:
Name: Bug Report
Title: "[Bug]: Telegram Duplicate Messages with Partial Streaming"
Labels: ["bug", "telegram", "channel-plugin"]
Description
When channels.telegram.streaming is set to "partial", Telegram clients display duplicate messages that are automatically deleted after a short delay. This creates a flickering effect where messages appear twice, then one is removed.
Steps to Reproduce
- Configure OpenClaw with
channels.telegram.streaming: "partial"(this is the default in some configurations) - Send messages via Telegram to the bot
- Observe that each message appears twice in the Telegram client
- After a brief delay (1-3 seconds), one duplicate is automatically deleted
Expected Behavior
Messages should appear once without duplication, regardless of streaming mode.
Actual Behavior
- Each message renders twice in the Telegram client
- One duplicate is auto-deleted by Telegram after arriving
- Creates visual flicker and confusion
Root Cause Analysis
The partial streaming mode sends message chunks that Telegram renders as separate messages. When the complete message arrives, Telegram's deduplication logic removes what it perceives as a duplicate.
Temporary Workaround
Set channels.telegram.streaming to "off" in ~/.openclaw/openclaw.json:
{
"channels": {
"telegram": {
"streaming": "off"
}
}
}Then restart the gateway:
openclaw gateway restartWorkaround Trade-offs
- Pros: Eliminates duplicate message display
- Cons: Loses the streaming text / typing indicator effect in Telegram
Suggested Permanent Fix
The Telegram channel plugin should either:
- Use proper message editing for streaming updates (send once, edit in place)
- Implement proper deduplication tokens to prevent Telegram from treating chunks as separate messages
- Disable partial streaming by default for Telegram until the issue is resolved
Environment
| Field | Value |
|---|---|
| OpenClaw Version | 2026.3.2 |
| OS | macOS 26.3 (arm64) |
| Node | v25.6.1 |
| Channel | Telegram |
| Date Discovered | 2026-03-03 |
Additional Context
This issue affects the user experience significantly in 1:1 chats but not group conversations. The duplicate-delete cycle is visible to end users and makes the bot appear unreliable.