Affected version: openclaw@2026.5.27
Summary
/compact via Discord native slash command completes the compaction successfully but shows "⚠️ Command produced no visible reply." instead of the expected confirmation (e.g. ⚙️ Compacted (50k → 10k) • 10k/200k).
By contrast, /new via native slash command produces a visible ephemeral reply as expected.
Expected behavior
The Discord interaction should reply with the compaction result text, e.g. ⚙️ Compacted (50k → 10k) • context usage.
Actual behavior
Discord shows the DISCORD_EMPTY_VISIBLE_REPLY_WARNING ephemeral fallback: "⚠️ Command produced no visible reply."
The compaction itself succeeds — session context is compacted and the system event is enqueued — but the reply.text from handleCompactCommand never reaches the Discord interaction delivery pipeline.
Root cause analysis
In commands-handlers.runtime-lGFD5UPQ.js, handleCompactCommand returns { shouldContinue: false, reply: { text: "⚙️ ..." } } after compaction completes. However, in the Discord native command path (provider-CiI2mFp8.js), dispatchDiscordNativeAgentReply → nativeCommandRuntime.dispatchReplyWithDispatcher does not surface this command handler reply through the deliver callback.
At line 956 of provider-CiI2mFp8.js:
if (params.suppressReplies || didReply || dispatchResult.queuedFinal ||
dispatchResult.counts.final !== 0 || dispatchResult.counts.block !== 0 ||
dispatchResult.counts.tool !== 0) return;
All counts are 0 and didReply is false, so it falls through to the empty reply warning.
Likely contributing factor: compaction involves an LLM summarization call (10-30+ seconds), which may cause timing issues with the interaction response pipeline, though the interaction is deferred so the 15-minute follow-up window should be sufficient.
Workaround
Type /compact as a plain text message (not from the slash command menu). Text commands go through the normal chat flow and deliver the confirmation as a regular message.
Steps to reproduce
- Open a Discord channel with an active OpenClaw bot session that has conversation history
- Use the native slash command menu to run
/compact
- Observe: "⚠️ Command produced no visible reply." (ephemeral)
- Run
/status — compaction count has incremented, confirming it worked
Environment
- Discord native commands with
commands.native: "auto"
- Multiple bot accounts tested (same behavior across all)
- OpenClaw v2026.5.27
Affected version: openclaw@2026.5.27
Summary
/compactvia Discord native slash command completes the compaction successfully but shows "⚙️ Compacted (50k → 10k) • 10k/200k).By contrast,
/newvia native slash command produces a visible ephemeral reply as expected.Expected behavior
The Discord interaction should reply with the compaction result text, e.g.
⚙️ Compacted (50k → 10k) • context usage.Actual behavior
Discord shows the⚠️ Command produced no visible reply."
DISCORD_EMPTY_VISIBLE_REPLY_WARNINGephemeral fallback: "The compaction itself succeeds — session context is compacted and the system event is enqueued — but the
reply.textfromhandleCompactCommandnever reaches the Discord interaction delivery pipeline.Root cause analysis
In
commands-handlers.runtime-lGFD5UPQ.js,handleCompactCommandreturns{ shouldContinue: false, reply: { text: "⚙️ ..." } }after compaction completes. However, in the Discord native command path (provider-CiI2mFp8.js),dispatchDiscordNativeAgentReply→nativeCommandRuntime.dispatchReplyWithDispatcherdoes not surface this command handler reply through thedelivercallback.At line 956 of
provider-CiI2mFp8.js:All counts are 0 and
didReplyis false, so it falls through to the empty reply warning.Likely contributing factor: compaction involves an LLM summarization call (10-30+ seconds), which may cause timing issues with the interaction response pipeline, though the interaction is deferred so the 15-minute follow-up window should be sufficient.
Workaround
Type
/compactas a plain text message (not from the slash command menu). Text commands go through the normal chat flow and deliver the confirmation as a regular message.Steps to reproduce
/compact/status— compaction count has incremented, confirming it workedEnvironment
commands.native: "auto"