Bug type
Behavior bug (UI/UX state update issue)
Beta release blocker
No
Summary
Discord intermediate status reaction emojis (🔧, 🔍, 🛠️, etc.) are not displayed during tool/skill execution phases. Only the initial (👀), waiting (⏳), warning (⚠️), and final (🧠) indicators appear, leaving users with no visible feedback during the actual processing pipeline.
Steps to reproduce
- Send a Discord message that triggers multi-step tool processing (e.g., weather query + radar query + web search, or a complex skill invocation)
- Observe the Discord reaction sequence on the user's message
- Note the long silent period between ⏳ and the final 🧠 emoji
Minimal reproducible example:
User: "milyen időjárás lesz budapesten és nézd meg a repülőket a radarral"
This triggers: web_fetch (weather) → exec (radar script) → exec (radar script with filter) → multiple tool calls.
Expected behavior
The Discord reaction emoji should update continuously to reflect the current processing stage:
👀 — Agent sees message (appears immediately)
⏳ — Processing started (appears immediately)
🔧 or 🔍 or 📡 — During active tool/skill execution (should appear during tool calls)
🧠 — LLM synthesis/response generation (appears at the end)
- Final response delivered
Intermediate reactions should replace the previous one, giving the user real-time feedback on what is currently happening.
Actual behavior
The observed reaction sequence is:
👀 — Appears immediately ✓
⏳ — Appears immediately ✓
- (long silent period — 10-30 seconds with no reaction updates)
⚠️ — Appears sometimes after extended processing
🧠 + Discord "Bot is typing..." indicator — Appears ONLY at the very end, during the final LLM summary generation, after all tool/skill execution has completed
- Final response delivered
The 🔧, 🔍, 🛠️, ⚙️, and other intermediate processing indicators are never displayed during the tool execution window. The user sees a static ⏳ for the entire duration of tool processing with no indication of progress or current activity.
OpenClaw version
2026.6.6
Operating system
Ubuntu 24.04 (AWS EC2 t3.small)
Install method
npm global
Model
kimi/k2p6
Provider / routing chain
openclaw → kimi (kimi/k2p6)
Additional provider/model setup details
Default configuration. Discord integration enabled via the standard discord plugin. No custom middleware or reaction handlers configured.
Logs, screenshots, and evidence
Typical processing timeline for the weather + radar request:
[16:22:00] User sends message: "milyen időjárás lesz budapesten és nézd meg a repülőket"
[16:22:00] 👀 reaction added to user message
[16:22:00] ⏳ reaction replaces 👀
[16:22:01] Tool call: web_fetch (weather wttr.in) — NO reaction change
[16:22:03] Tool call: read (SKILL.md) — NO reaction change
[16:22:05] Tool call: exec (radar.py) — NO reaction change
[16:22:10] Tool call: exec (radar.py --filter) — NO reaction change
[16:22:15] Tool call: exec (radar.py --limit) — NO reaction change
[16:22:30] ⚠️ appears (warning — reason unknown)
[16:22:35] 🧠 reaction appears + Discord "Bot is typing..." starts
[16:22:37] LLM response generated and sent
Expected vs Actual timeline:
| Time |
Expected Reaction |
Actual Reaction |
| 0s |
👀 |
👀 ✓ |
| 0s |
⏳ |
⏳ ✓ |
| 1-3s |
🔍 (web_fetch) |
⏳ (no change) ✗ |
| 5-15s |
🔧 (exec scripts) |
⏳ (no change) ✗ |
| 15-30s |
📡 (API calls) |
⏳ (no change) ✗ |
| 30s |
⚠️ |
⚠️ ✓ |
| 35s |
🧠 |
🧠 ✓ |
Impact and severity
- Affected: All Discord users processing multi-step requests with tools/skills
- Severity: Medium-High (significant UX degradation)
- Frequency: 100% — every tool chain longer than 2-3 steps exhibits this behavior
- Consequence:
- Users perceive the bot as "frozen" or unresponsive during 10-30 second processing windows
- No way to distinguish between slow processing, rate limits, or actual errors
- Users may send duplicate messages thinking the first one was lost
- Debugging and support burden increases because users cannot self-diagnose processing state
Additional information
- Discord typing indicator works: The "Bot is typing..." indicator appears correctly at the end during LLM inference, proving the Discord adapter CAN send real-time UI updates
- Base reaction mechanism works:
👀, ⏳, ⚠️ all function correctly, proving the core reaction API is accessible
- Gap is specifically in the middle: The issue is exclusively in the tool/skill execution phase, not the initial or final phases
- Not a Discord rate limit: The reactions that DO appear are added/removed without issues. If rate limits were the cause, the final
🧠 would also fail to appear
- Not a permission issue: The bot has full reaction permissions (evidenced by working reactions at start and end)
- Related observations: The
⏳ reaction is often replaced by 🧠 at the end, but never by any intermediate tool-specific reaction during processing
- Possible code areas:
agentTurn processing loop, tool_call lifecycle hooks, Discord adapter reaction state machine, or the turn processing pipeline's status emission logic
Related issues
Bug type
Behavior bug (UI/UX state update issue)
Beta release blocker
No
Summary
Discord intermediate status reaction emojis (🔧, 🔍, 🛠️, etc.) are not displayed during tool/skill execution phases. Only the initial (👀), waiting (⏳), warning (⚠️ ), and final (🧠) indicators appear, leaving users with no visible feedback during the actual processing pipeline.
Steps to reproduce
Minimal reproducible example:
This triggers: web_fetch (weather) → exec (radar script) → exec (radar script with filter) → multiple tool calls.
Expected behavior
The Discord reaction emoji should update continuously to reflect the current processing stage:
👀— Agent sees message (appears immediately)⏳— Processing started (appears immediately)🔧or🔍or📡— During active tool/skill execution (should appear during tool calls)🧠— LLM synthesis/response generation (appears at the end)Intermediate reactions should replace the previous one, giving the user real-time feedback on what is currently happening.
Actual behavior
The observed reaction sequence is:
👀— Appears immediately ✓⏳— Appears immediately ✓⚠️— Appears sometimes after extended processing🧠+ Discord "Bot is typing..." indicator — Appears ONLY at the very end, during the final LLM summary generation, after all tool/skill execution has completedThe
🔧,🔍,🛠️,⚙️, and other intermediate processing indicators are never displayed during the tool execution window. The user sees a static⏳for the entire duration of tool processing with no indication of progress or current activity.OpenClaw version
2026.6.6
Operating system
Ubuntu 24.04 (AWS EC2 t3.small)
Install method
npm global
Model
kimi/k2p6
Provider / routing chain
openclaw → kimi (kimi/k2p6)
Additional provider/model setup details
Default configuration. Discord integration enabled via the standard discord plugin. No custom middleware or reaction handlers configured.
Logs, screenshots, and evidence
Typical processing timeline for the weather + radar request:
Expected vs Actual timeline:
Impact and severity
Additional information
👀,⏳,⚠️all function correctly, proving the core reaction API is accessible🧠would also fail to appear⏳reaction is often replaced by🧠at the end, but never by any intermediate tool-specific reaction during processingagentTurnprocessing loop,tool_calllifecycle hooks, Discord adapter reaction state machine, or the turn processing pipeline's status emission logicRelated issues