Bug type
Behavior bug (incorrect output/state without crash)
Summary
When streaming: "partial" is enabled for the Telegram channel and the model produces a turn with both a thinking block and a text block
(e.g. after a tool call), OpenClaw sends the thinking block as a Telegram message but silently drops the text block. The text never reaches
the user.
To reproduce:
- Set streaming: "partial" in the Telegram channel config
- Enable verbose reasoning mode
- Send a message that causes the model to: reason → call a tool → reason again → respond
- Observe: 3 messages arrive (reasoning, tool exec display, second reasoning) but the final text response is missing
Evidence:
- Session file confirms the model generated the full response (stopReason: "stop", text block present)
- Gateway log shows only 3 sendMessage ok calls — no 4th call for the text block
- Forwarding the 3 messages via Bot API confirmed msg 3 = thinking block only, text block never dispatched
- Switching to streaming: "off" fixes it immediately
Version: 2026.3.13 (61d171a), Node 22.22.1
Steps to reproduce
- In ~/.openclaw/openclaw.json, set the Telegram channel to "streaming": "partial":
"telegram": {
"streaming": "partial"
}
- Enable verbose/reasoning display mode in the OpenClaw Telegram chat (or have a model with extended thinking enabled)
- Send any message that causes the model to follow this turn sequence:
- Turn 1: [thinking, tool_use] — model reasons then calls a tool (e.g. exec)
- Tool result returned
- Turn 2: [thinking, text] — model reasons then produces the final text response
A reliable trigger: send a message like list my projects or any prompt that causes the model to run a shell command and then summarize the
output.
4. Expected: 4 Telegram messages arrive — reasoning, exec display, second reasoning, and the final text response
5. Actual: Only 3 messages arrive — the text block from Turn 2 is silently dropped. The last message the user sees is "Reasoning: [thinking
text]" with no response following it.
Expected behavior
After Turn 2 completes, a 4th Telegram message should be sent containing the text block content (the actual response to the user). The
complete sequence should be:
- Reasoning: [thinking text] — streaming preview of Turn 1 thinking
- 🛠️ Exec: [command] — tool call display
- Reasoning: [thinking text] — streaming preview of Turn 2 thinking
- Your projects: ... (or whatever the model's text response is) — this message is missing
The thinking and text blocks within the same assistant turn should both be dispatched. Currently only the thinking block is sent; the text
block that follows in the same turn is dropped.
Workaround: Setting "streaming": "off" sends the complete response as a single message after the full turn completes.
Actual behavior
Actual: Only 3 messages arrive — the text block from Turn 2 is silently dropped. The last message the user sees is "Reasoning: [thinking
text]" with no response following it.
OpenClaw version
2026.3.13 (61d171a), Node 22.22.1
Operating system
Ubuntu
Install method
npm global
Model
minimax
Provider / routing chain
openclaw -> minimax -> openclaw
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
No response
Bug type
Behavior bug (incorrect output/state without crash)
Summary
When streaming: "partial" is enabled for the Telegram channel and the model produces a turn with both a thinking block and a text block
(e.g. after a tool call), OpenClaw sends the thinking block as a Telegram message but silently drops the text block. The text never reaches
the user.
To reproduce:
Evidence:
Version: 2026.3.13 (61d171a), Node 22.22.1
Steps to reproduce
"telegram": {
"streaming": "partial"
}
- Turn 1: [thinking, tool_use] — model reasons then calls a tool (e.g. exec)
- Tool result returned
- Turn 2: [thinking, text] — model reasons then produces the final text response
A reliable trigger: send a message like list my projects or any prompt that causes the model to run a shell command and then summarize the
output.
4. Expected: 4 Telegram messages arrive — reasoning, exec display, second reasoning, and the final text response
5. Actual: Only 3 messages arrive — the text block from Turn 2 is silently dropped. The last message the user sees is "Reasoning: [thinking
text]" with no response following it.
Expected behavior
After Turn 2 completes, a 4th Telegram message should be sent containing the text block content (the actual response to the user). The
complete sequence should be:
The thinking and text blocks within the same assistant turn should both be dispatched. Currently only the thinking block is sent; the text
block that follows in the same turn is dropped.
Workaround: Setting "streaming": "off" sends the complete response as a single message after the full turn completes.
Actual behavior
Actual: Only 3 messages arrive — the text block from Turn 2 is silently dropped. The last message the user sees is "Reasoning: [thinking
text]" with no response following it.
OpenClaw version
2026.3.13 (61d171a), Node 22.22.1
Operating system
Ubuntu
Install method
npm global
Model
minimax
Provider / routing chain
openclaw -> minimax -> openclaw
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
No response