Channel Troubleshooting: Fix Connection and Behavior Issues

Diagnose channels that connect but misbehave. Use command ladders, post-update checks, and per-channel failure signatures to resolve issues quickly.

Read this when

  • Channel transport says connected but replies fail
  • You need channel specific checks before deep provider docs

Use this page when a channel establishes a connection but behaves incorrectly.

Command ladder

Start by running these in sequence:

openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe

Expected healthy state:

  • Runtime: running
  • Connectivity probe: ok
  • Capability: read-only, write-capable, or admin-capable
  • Channel probe reports transport connected and, when the feature exists, works or audit ok

After an update

Refer to this when Telegram, iMessage, BlueBubbles-era configs, or another plugin channel vanishes after an upgrade.

openclaw status --all
openclaw doctor --fix
openclaw gateway restart
openclaw status --all

Search for plugin load failed: dependency tree corrupted; run openclaw doctor --fix inside openclaw status --all. That indicates the channel is set up, but plugin setup/load encountered a corrupted dependency tree rather than registering the channel. openclaw doctor --fix removes stale plugin-runtime dependency symlinks and outdated auth shadows, then openclaw gateway restart reloads a clean state.

WhatsApp

WhatsApp failure signatures

SymptomFastest checkFix
Connected but no DM repliesopenclaw pairing list whatsappApprove the sender or adjust the DM policy/allowlist.
Group messages ignoredCheck requireMention + mention patterns in configMention the bot or relax the mention policy for that group.
QR login times out with 408Check gateway HTTPS_PROXY / HTTP_PROXY envConfigure a reachable proxy; use NO_PROXY only for bypasses.
Random disconnect/relogin loopsopenclaw channels status --probe + logsRecent reconnects are flagged even when currently connected; monitor logs, restart the gateway, then relink if flapping persists.
status=408 Request Time-out loopProbe, logs, doctor, then gateway statusFix host connectivity/timing first; back up auth and re-link the account if the loop persists.
Replies arrive seconds/minutes lateopenclaw doctor --fixDoctor stops verified stale local TUI clients when they are degrading the Gateway event loop.

Full troubleshooting: WhatsApp troubleshooting

Telegram

Telegram failure signatures

SymptomFastest checkFix
/start but no usable reply flowopenclaw pairing list telegramApprove pairing or change DM policy.
Bot online but group stays silentVerify mention requirement and bot privacy modeDisable privacy mode for group visibility or mention bot.
Send failures with network errorsInspect logs for Telegram API call failuresFix DNS/IPv6/proxy routing to api.telegram.org.
Startup reports getMe returned 401Check configured token sourceRe-copy or regenerate the BotFather token and update botToken, tokenFile, or default-account TELEGRAM_BOT_TOKEN.
Polling stalls or reconnects slowlyopenclaw logs --follow for polling diagnosticsUpgrade; persistent stalls usually point to proxy/DNS/IPv6.
setMyCommands rejected at startupInspect logs for BOT_COMMANDS_TOO_MUCHReduce plugin/skill/custom Telegram commands or disable native menus.
Upgraded and allowlist blocks youopenclaw security audit and config allowlistsRun openclaw doctor --fix or replace @username with numeric sender IDs.

Full troubleshooting: Telegram troubleshooting

Discord

Discord failure signatures

SymptomFastest checkFix
Bot online but no guild repliesopenclaw channels status --probeEnable guild/channel access and confirm the message content intent is turned on.
Group messages ignoredLook through logs for drops caused by mention gatingHave the bot mentioned, or configure guild/channel requireMention: false.
Typing/token usage but no Discord messageDetermine whether this is an ambient room event or an opted-in message_tool room where the model skipped message(action=send)Review the gateway verbose log for suppressed final payload metadata, confirm messages.groupChat.unmentionedInbound, consult Ambient room events, or retain messages.groupChat.visibleReplies: "automatic" for standard group requests.
DM replies missingopenclaw pairing list discordAccept the DM pairing or modify the DM policy.
Bot silent in channels that used to workSee if the guild entry picked up a channels mapA channel map functions as an allowlist: any channel not listed is refused. Insert a "*" wildcard entry. Refer to Guild channel maps are allowlists.
Agent cannot see room history or attachments from other botsExamine the room's requireMention and the account's allowBotsrequireMention: true discards unmentioned messages before they turn into room events, so no backlog exists. Messages written by bots along with their attachments call for allowBots ("mentions" is the more secure choice). See Ambient room events.
Agent watches an ambient room but never postsInspect the agent's tool profile for the message toolRoom events depend on message(action=send), which the minimal and coding profiles leave out. Assign tools.alsoAllow: ["message"] to that agent.

Full troubleshooting: Discord troubleshooting

Slack

Slack failure signatures

SymptomFastest checkFix
Socket mode connected but no responsesopenclaw channels status --probeConfirm app token plus bot token and the necessary scopes; keep an eye out for botTokenStatus / appTokenStatus = configured_unavailable on SecretRef-backed setups.
DMs blockedopenclaw pairing list slackAccept the pairing or ease the DM policy.
Channel message ignoredCheck groupPolicy and channel allowlistPermit the channel or change the policy to open.

Full troubleshooting: Slack troubleshooting

iMessage

iMessage failure signatures

SymptomFastest checkFix
imsg missing or fails on non-macOSopenclaw channels status --probe --channel imessageExecute OpenClaw on the Messages Mac, or employ an SSH wrapper for cliPath.
Can send but no receive on macOSCheck macOS privacy permissions for Messages automationRe-grant TCC permissions and restart the channel process.
DM sender blockedopenclaw pairing list imessageAccept the pairing or refresh the allowlist.

Full troubleshooting: iMessage troubleshooting

Signal

Signal failure signatures

SymptomFastest checkFix
Daemon reachable but bot silentopenclaw channels status --probeConfirm the signal-cli daemon URL/account and receive mode.
DM blockedopenclaw pairing list signalApprove the sender or tweak the DM policy.
Group replies do not triggerCheck group allowlist and mention patternsAdd the sender/group or relax gating.

Full troubleshooting: Signal troubleshooting

QQ Bot

QQ Bot failure signatures

SymptomFastest checkFix
Bot replies "gone to Mars"Verify appId and clientSecret in configSet credentials or restart the gateway.
No inbound messagesopenclaw channels status --probeConfirm credentials on the QQ Open Platform.
Voice not transcribedCheck STT provider configSet up channels.qqbot.stt or tools.media.audio.
Proactive messages not arrivingCheck QQ platform interaction requirementsQQ may block bot-initiated messages without recent interaction.

Full troubleshooting: QQ Bot troubleshooting

Matrix

Matrix failure signatures

SymptomFastest checkFix
Logged in but ignores room messagesopenclaw channels status --probeCheck groupPolicy, room allowlist, and mention gating.
DMs do not processopenclaw pairing list matrixApprove sender or adjust DM policy.
Encrypted rooms failopenclaw matrix verify statusRe-verify the device, then check openclaw matrix verify backup status.
Backup restore is pending/brokenopenclaw matrix verify backup statusRun openclaw matrix verify backup restore or rerun with a recovery key.
Cross-signing/bootstrap looks wrongopenclaw matrix verify bootstrapRepair secret storage, cross-signing, and backup state in one pass.

Full setup and config: Matrix

Gateway up but channel never connects

When the gateway process runs fine yet a channel stays stopped after several unclean boots, the crash-loop breaker might be holding back channel auto-start. To override right away, use openclaw gateway call channels.start --params '{"channel":"<id>"}', or keep the healthy gateway active. Once the full unclean-boot window has passed, the same process re-evaluates the breaker and resumes auto-start for any deferred channels.

1,417 words · updated Aug 5, 2026