#no answer from claw on topics
1 messages · Page 1 of 1 (latest)
This pattern usually means OpenClaw did handle the turn, but the final answer didn’t make it back to Discord.
First thing: please check your version:
openclaw --version
Then run this while reproducing it in the topic/thread:
openclaw status --all
openclaw logs --follow
What to look for in the log/session:
didSendViaMessagingTool: false→ the model answered “privately” instead of calling the Discordmessagetool. This is common in guild channels/topics because visible channel replies require a tool call.- Discord permission errors → make sure the bot invite includes Send Messages in Threads for forum/topic/thread workflows.
- model/provider errors or tool-call JSON errors → switch that Discord session/channel to a stronger tool-calling model.
Quick workaround if you want old-style automatic posting in group/channel rooms:
{
messages: {
groupChat: {
visibleReplies: "automatic"
}
}
}
And for private servers where you want it to answer without @mention:
{
channels: {
discord: {
guilds: {
YOUR_SERVER_ID: {
requireMention: false
}
}
}
}
}
After config changes:
openclaw doctor
openclaw gateway restart
Docs: https://docs.openclaw.ai/channels/discord and https://docs.openclaw.ai/help/faq#first-60-seconds-if-something-is-broken
If you paste the openclaw --version plus the relevant redacted log lines around one failed turn, we can tell which bucket it is pretty quickly. 🦞
iit's telegram. where to search for didSendViaMessagingTool?
Ah — Telegram topics, got it. My Discord-specific note was too narrow.
didSendViaMessagingTool is in the session transcript JSONL, not usually the main log. For Telegram topics, first find the session key/file:
openclaw sessions --all-agents --active 120 --json
Look for a session key containing something like:
telegram:group:<chat_id>:topic:<thread_id>
Then search the transcripts:
grep -R "didSendViaMessagingTool" ~/.openclaw/agents/*/sessions/*.jsonl | tail -20
If you want nearby context around one failed turn:
grep -R -n "didSendViaMessagingTool" ~/.openclaw/agents/*/sessions/*.jsonl | tail -20
For Telegram topics specifically, also check live logs while reproducing:
openclaw logs --follow
Things to look for:
didSendViaMessagingTool: false+ assistant text → model answered privately; setmessages.groupChat.visibleReplies: "automatic"or use a better tool-calling model.- Telegram API errors like
message thread not found,chat not found,bot was blocked,not enough rights, etc. → delivery/routing/permission issue. - No agent run at all → group/topic activation or allowlist issue.
Most likely config workaround for Telegram groups/topics:
{
messages: {
groupChat: {
visibleReplies: "automatic"
}
}
}
Docs: https://docs.openclaw.ai/channels/groups and https://docs.openclaw.ai/channels/telegram
db6c755d-c51b-4db6-81db-a8fe7d683d3b-topic-17.trajectory.jsonl:{"traceSchema":"openclaw-trajectory","schemaVersion":1,"traceId":"db6c755d-c51b-4db6-81db-a8fe7d683d3b","source":"runtime","type":"trace.artifacts","ts":"2026-05-12T13:13:03.790Z","seq":6,"sourceSeq":6,"sessionId":"db6c755d-c51b-4db6-81db-a8fe7d683d3b","sessionKey":"agent:butler:telegram:group:-1003908026480:topic:17","runId":"4b4f6676-a285-4021-b2b0-80a9014dbb99","workspaceDir":"/Users/aviadlevy/.openclaw/workspace/butler","provider":"google","modelId":"gemini-2.5-flash","modelApi":"google-generative-ai","data":{"capturedAt":"2026-05-12T13:13:03.790Z","finalStatus":"success","aborted":false,"externalAbort":false,"timedOut":false,"idleTimedOut":false,"timedOutDuringCompaction":false,"timedOutDuringToolExecution":false,"promptErrorSource":null,"usage":{"input":79571,"output":754,"cacheRead":19416,"total":99741},"promptCache":{"lastCallUsage":{"input":20906,"output":66,"cacheRead":0,"cacheWrite":0,"total":20972},"lastCacheTouchAt":1778591581682},"compactionCount":0,"assistantTexts":["Noted. Your work updates for today have been logged. 📝"],"finalPromptText":"today:\n- session with Tom, the salesforce MCP is almost ready\n- AI session with Nissim\n- AI session with Andrei from Gady's team\n- short session with Sam about the new maven cache repo\n- short sync with Pasha about next steps\n- short sync with Nir about FF slackbot\n- session with Sergey from QA about paperclip and his adjustment to assest if we can use it OX wide","itemLifecycle":{"startedCount":4,"completedCount":4,"activeCount":0},"toolMetas":[{"toolName":"read","meta":"from ~/.openclaw/skills/work-journal-optimizer/SKILL.md"},{"toolName":"session_status"},{"toolName":"read","meta":"from memory/2026-05-12.md"},{"toolName":"write","meta":"to memory/2026-05-12.md (373 chars)"}],"didSendViaMessagingTool":false,"successfulCronAdds":0,"messagingToolSentTexts":[],"messagingToolSentMediaUrls":[],"messagingToolSentTargets":[]}}
Yep, that confirms it exactly:
finalStatus: success
assistantTexts: ["Noted. Your work updates for today have been logged. 📝"]
didSendViaMessagingTool: false
messagingToolSentTexts: []
So OpenClaw didn’t crash and Telegram didn’t fail. The model completed the task, wrote the file, produced a final answer, but because this is a Telegram group/topic the visible reply mode expected the model to call the messaging tool — and Gemini 2.5 Flash didn’t.
Fix options:
- Recommended quick fix: restore automatic visible group replies
{
messages: {
groupChat: {
visibleReplies: "automatic"
}
}
}
- Or keep
message_toolmode but use a more reliable tool-calling model for that agent/session thangemini-2.5-flash.
After editing config, run:
openclaw doctor
openclaw gateway restart
If you want to verify after the fix, reproduce once and check the next trajectory. You should either see a visible Telegram message, or didSendViaMessagingTool: true if you stay in message-tool mode.