Troubleshooting
Discord Bot Can Read But Can’t Reply?
If your agent sees messages but stays silent, this is usually a channel policy or integration restriction — not a broken token. Here’s the fastest way to isolate it.
This is one of the most common Discord setup traps: your bot is online, can read history, maybe even logs messages — but sends nothing back. The fix is usually permission scope, channel type, mention policy, or stale gateway config.
Important: "All permissions" on the role is not always enough. Channel overrides and integration restrictions can still block replies.
Quick symptom check
- Bot appears online and responds in DM, but not in server channels.
- Bot can read channel content but never posts a reply.
- Bot shows typing… for a while, then posts nothing.
- Works only when you @mention the bot (or only fails without mention).
- Works in one channel, fails in another.
5-minute isolation flow
- Run a clean-room test: create a new text channel with no custom overrides.
- Check Send permissions: ensure bot role has Send Messages, View Channel, and Read Message History.
- Check thread/forum permissions: if testing in threads/forums, allow Send Messages in Threads too.
- Check Integrations restrictions: Server Settings → Integrations → bot commands/usage restrictions.
- Retest from a fresh agent session: start
/new, then @mention in the clean test channel.
If the bot types but posts nothing
- Confirm mention policy: ask your agent to verify whether it is configured to require @mentions in channels.
- Confirm bot-response policy: ensure your config allows responding in regular channel messages (not only DMs).
- If your setup uses allow-bot-message gates: verify they are enabled where intended.
- Restart gateway after config changes: config edits often do nothing until gateway restart.
- Retest with one deterministic prompt: avoid long prompts while debugging.
Why this matters: A lot of "typing then silence" reports are not model failures. They are policy/config mismatches where the bot starts work but cannot legally post in that context.
Known-good test message
@YourBot Reply with exactly: CHANNEL_REPLY_OK
Then include:
1) channel name
2) whether mention was required
3) current timestamp
Expected result: You receive a direct reply in that same channel. If this passes in clean-room but fails elsewhere, your issue is channel-level policy, not global bot config.
High-friction failure patterns
- Category sync drift: child channel permissions drifted from category defaults.
- Forum/thread mismatch: bot can read parent forum but cannot post in the thread itself.
- Mention mismatch: config requires @mention, but user expects normal free chat.
- Config changed, gateway not restarted: settings are correct on disk but old behavior still running.
- Role hierarchy confusion: admin role granted, but channel override explicitly denies bot role.
- Moderation gates: slowmode, anti-spam, or mention policies silently block bot output.
- Wrong guild bound in config: bot is healthy, but your server ID is missing from allowlist/target guild settings.
- Server mismatch during testing: DM works because global identity is fine, but channel tests are happening in a different Discord server than configured.
DM works, server still silent? Run this policy reset
- Confirm server ID: verify you are testing in the exact guild configured for this bot.
- Set channel behavior explicitly: ask the agent to set
groupPolicy: open and requireMention: false (or document your intended mention-only behavior).
- Check allowlist/target guild config: ensure your current guild ID is included where applicable.
- Restart gateway: apply changes, then restart before retesting.
- Retest in one clean text channel: no custom overrides, then expand back to normal channels.
Avoid this trap: Don’t rotate tokens/reinstall the bot first. If DM works and clean-room works, reinstalling won’t fix a channel override or mention-policy problem.
Copy/paste support packet
Discord can-read/can't-reply report:
- Works in DM: yes/no
- Works in clean-room channel: yes/no
- Failing channel type: text/forum/thread
- Bot types then stops: yes/no
- Send Messages permission in failing channel: allowed/denied
- Send Messages in Threads (if applicable): allowed/denied
- Mention required to get response: yes/no
- Gateway restarted after config edits: yes/no
- Integrations restrictions checked: yes/no
- Fresh /new session test done: yes/no
- Exact failing test prompt + timestamp: [paste]