#Discord can write, but not read
1 messages · Page 1 of 1 (latest)
Discord can write, but not read
Yes — “can write but doesn’t react/read inbound messages” usually points to Discord-side inbound permissions/intents or OpenClaw filtering, not the model.
First check the version, because weird channel behavior is often version/config-state related:
openclaw --version
openclaw status --all
openclaw channels status --probe
openclaw logs --follow
Things I’d check in this order:
- Discord Developer Portal → Bot → Privileged Gateway Intents: Message Content Intent must be enabled. If you changed it, restart the gateway.
- Bot permissions in that server/channel/thread: View Channels, Read Message History, Send Messages, and Add Reactions if you expect reactions.
- Logs for drops like
drop guild message (mention required,pairing request,blocked, orallowlist. - Config: if
channels.discord.guilds.<guild>.channelsexists, only listed channels are allowed; ifrequireMentionis true, it may ignore normal messages unless mentioned/replied-to.
Docs: https://docs.openclaw.ai/channels/discord and https://docs.openclaw.ai/channels/troubleshooting
If you paste openclaw --version plus the relevant redacted lines from openclaw channels status --probe / logs, we can narrow it down quickly. 🦞
Yep — that distinction is useful. If it can write, the token is valid and outbound routing works. The failure is almost certainly on the inbound side:
- Message Content Intent disabled in Discord Developer Portal → Bot → Privileged Gateway Intents
- Gateway wasn’t restarted after changing intents
- Bot lacks View Channel / Read Message History in that channel/thread
- OpenClaw is receiving the event but dropping it due to
requireMention, guild/channel allowlist, user allowlist, or pairing
Please run:
openclaw --version
openclaw channels status --probe
openclaw logs --follow
Then write one test message in Discord and look for log lines containing discord, MESSAGE_CREATE, drop guild message, mention required, allowlist, blocked, or pairing request.
If there’s no log activity at all when you send a message, I’d bet on Discord intents/permissions/restart. If there is activity, paste the redacted drop line and we can pinpoint the config filter.
Update : Found more details in the logs. The bot does receive messages (visible in liveness logs as agent:main:discord:channel:1480258916217786526(processing/model_call)), but never posts the reply back to the channel.
Already tried messages.groupChat.visibleReplies: "automatic" — no effect.
Relevant log line:
Copier
work=[active=agent:main:discord:channel:1480258916217786526(processing/model_call,q=1,age=1s last=model_call:started)]
Then silence — no post, no error. The session disappears without posting anything.
Ah, that log changes the diagnosis: Discord is being read. The stuck point is after inbound routing, during/after the agent run.
processing/model_call means OpenClaw handed the message to the model. If it then disappears with no Discord send, I’d check these two likely causes:
-
The model is returning
NO_REPLY
In groups/channels, bareNO_REPLYis intentionally silent by default.messages.groupChat.visibleRepliesdoesn’t appear to be a current config key, so I wouldn’t expect it to change this.To force a visible fallback for silent replies, try:
openclaw config get agents.defaults.silentReply openclaw config set agents.defaults.silentReply.group disallow --strict-json openclaw gateway restart -
session.sendPolicyis suppressing delivery
Check whether Discord channel sessions are denied:
openclaw config get session.sendPolicy
openclaw sessions --all-agents --json | grep -A20 '1480258916217786526'
If the session entry has sendPolicy: "deny", final replies are intentionally not delivered.
Also worth checking model completion/error separately:
openclaw models status
openclaw logs --follow | grep -Ei 'model_call|NO_REPLY|sendPolicy|suppress|discord|error|failed'
My bet from that exact symptom is either model answered NO_REPLY and Discord channel silence is allowed, or a session sendPolicy deny got attached. If neither shows up, this is issue-worthy because model_call:started → session gone → no delivery/no error should leave a clearer log trail.
seems it worked !
Nice! 🎉 Glad that nailed it.
If this fixed it, please right-click the solution message → Apps → ✅ Mark Solution so Answer Overflow indexes it for the next person who hits the same “reads but silently doesn’t reply” trap.