Troubleshooting Guide
OpenClaw Bot Not Responding? Here's How to Fix It
Your OpenClaw AI bot stopped replying on Telegram, Discord, or web chat? This guide covers every common cause — from token errors to deployment issues — with step-by-step fixes to get your bot back online.
Quick Checklist
Before diving into detailed troubleshooting, run through these common causes. Most “bot not responding” issues are solved by one of these:
- Is your instance running? — Check your dashboard. If the instance shows “stopped” or “error,” restart it.
- Is your bot token correct? — For Telegram, check with @BotFather. For Discord, check the Developer Portal.
- Did you wait 30–60 seconds after deploying? — OpenClaw needs initialization time to start all plugins and connect to your messaging platform.
- Is your subscription active? — An expired subscription will stop your instance. Check your account settings.
- Do you have AI model credits remaining? — If your OpenRouter credits or BYOK API key balance is exhausted, the bot will receive messages but cannot generate responses.
Telegram Bot Not Responding
1. Check if the Bot Token is Valid
An invalid or revoked bot token is the most common reason a Telegram bot stops working. To verify your token:
- Open Telegram and message @BotFather
- Send
/mybotsand select your bot - Tap API Token to view the current token
- Compare it with the token in your OpenClaw configuration — they must match exactly
123456789:ABCdefGHIjklMNOpqrsTUVwxyz. Even one extra character will cause authentication to fail.2. “Plugin Not Available” Error
If you see a “plugin not available” message in your instance logs, it means the Telegram plugin hasn't finished initializing. This is normal during the first 30–60 seconds after deployment.
- Wait 30–60 seconds after your first deploy — OpenClaw needs time to initialize the Telegram polling connection
- If it persists beyond 2 minutes, restart your instance from the dashboard
- Check that both
channels.telegram.enabledandplugins.entries.telegram.enabledare set totruein your configuration — both are required for the plugin to start
3. Bot Shows Online But Doesn't Reply
If your Telegram bot appears online but ignores your messages, the issue is usually related to the DM policy or pairing configuration:
- Check dmPolicy: For Telegram, the recommended setting is
"pairing". This requires users to pair with the bot through the web gateway before it will respond to messages. - Complete the pairing process: DM the bot to receive a pairing code, then approve it in the gateway UI. Without pairing, the bot silently drops all incoming messages.
- If using OpenClaw Launch: After deployment, follow the on-screen pairing steps — DM the bot on Telegram to get a pairing code, then enter it in the dashboard. If pairing was not completed, the bot will not reply.
~/.openclaw/credentials/ must exist for pairing to work. Without it, the Telegram plugin silently drops all messages. OpenClaw Launch creates this directory automatically.4. Bot Was Working But Stopped
If your Telegram bot was previously responding and suddenly went silent, check these causes in order:
- AI model credits: Check if your OpenRouter credits or BYOK API key balance is exhausted. The bot receives messages but cannot generate responses without credits.
- Subscription status: An expired or canceled subscription will stop your instance. Check your account settings or billing portal.
- Container health: The instance may have crashed due to memory limits. Check your dashboard for error status and restart if needed.
- Token revocation: If you regenerated your bot token in @BotFather, the old token is immediately invalidated. Update the token in your configuration and redeploy.
- Runtime owner error: If the log keeps repeating
prepared reply dispatch runtime owner was not published, the agent lost its ready state and needs a full restart. See the section on this error below.
Discord Bot Not Responding
1. Bot Not Coming Online
If your Discord bot doesn't appear online in your server at all, verify these settings:
- Verify the bot token: Go to the Discord Developer Portal, select your application, navigate to Bot, and confirm the token matches your OpenClaw configuration.
- Invite the bot to your server: Use the OAuth2 URL Generator in the Developer Portal. Select
botscope and grantSend Messages,Read Message History, andRead Messages/View Channelspermissions. - Enable Message Content Intent: In the Developer Portal under Bot → Privileged Gateway Intents, enable Message Content Intent. Without this, the bot cannot read message content.
- Wait for initialization: Like Telegram, the Discord plugin needs 30–60 seconds to connect after deployment.
2. Bot Online But Not Replying
If your Discord bot shows as online (green dot) but doesn't respond to messages:
- Check dmPolicy: Discord bots should use
"open"withallowFrom: ["*"]. Unlike Telegram, Discord bots are invite-only so “open” is safe. Using “pairing” on Discord causes a confusing UX. - Check channel permissions: The bot needs permission to read and send messages in the specific channel. Check Server Settings → Roles and the channel's permission overrides.
- Try mentioning the bot: Some configurations require an
@mentionto trigger a response. Try@YourBotName helloin the channel. - Check for missing allowFrom: If
dmPolicyis set to"open"butallowFromis missing, config validation fails silently. Always includeallowFrom: ["*"]when using open DM policy.
Web Chat Not Responding
If the OpenClaw web chat (gateway control UI) is not responding to messages:
- Check if the gateway is running: The web chat connects directly to the OpenClaw gateway. If the gateway process has stopped, the chat will not work. Verify your instance is running in the dashboard.
- Verify the gateway token: The web chat authenticates using the gateway token. If you changed the token in the configuration, you need to use the new token to connect.
- Clear browser cache: Stale WebSocket connections can prevent reconnection. Clear your browser cache or try an incognito window.
- Check for “pairing required” errors: If connecting remotely, you may need
gateway.controlUi.allowInsecureAuth: truein your configuration. See our gateway pairing guide for details.
General Fixes That Work for All Platforms
If you've checked the platform-specific troubleshooting above and your bot still isn't responding, try these universal fixes:
- Restart your instance: Go to your dashboard, find your instance, and click the restart button. This resolves most transient issues.
- Check your AI model: If using a BYOK (bring your own key) API key, verify it is valid and has sufficient credits. Test your API key directly with the provider (OpenRouter, OpenAI, etc.) to confirm it works.
- Re-deploy from scratch: Sometimes a fresh deployment fixes persistent connection issues. Delete the current instance, reconfigure, and deploy again.
- Check instance logs: Instance logs reveal the exact error. On OpenClaw Launch, view logs from your dashboard. For self-hosted setups, run
docker logs openclaw --tail 100. - Verify plugin configuration: Each channel requires both the channel config (
channels.telegram.enabled: true) and the plugin entry (plugins.entries.telegram.enabled: true). Missing either one means the channel won't start.
Error: “prepared reply dispatch runtime owner was not published”
If your bot receives messages but never answers, and the gateway log repeats this line, the gateway itself is up but the agent cannot reply:
prepared reply dispatch runtime owner was not published for mainThe last word is the agent id (main is the default agent). A sibling message, prepared model runtime owner was not published for …/agents/<id>/agent, comes from the same place. This is an OpenClaw gateway error; Hermes Agent does not have this component.
What it means
Before an agent can reply, OpenClaw builds the agent's model runtime and publishes it, which marks the agent as ready to take messages. Some events take the agent out of the published set so it can be rebuilt. If that rebuild fails, or misses its 120-second deadline, the agent is not put back. Every new message for that agent then fails at the last step, and in the versions reported upstream it does not recover by itself. Only that agent goes quiet; other agents on the same gateway keep working.
Triggers reported so far:
- A model sign-in refresh that fails. This is how it hit our own bot on OpenClaw 2026.10.6: an OpenAI OAuth refresh failed four minutes after a restart, the log showed
auth-triggered model runtime refresh failed, and every reply failed from then on. openclaw#158592 shows the same chain. - The host sleeping, or the event loop stalling. After a laptop wakes, or after a long freeze, the rebuild misses its deadline (openclaw#158592).
- Plugin changes while the gateway runs. Enabling, disabling or uninstalling a plugin, or editing
plugins.alloworplugins.entriesinopenclaw.json, reloads the runtime. If that reload fails, the agent is left unpublished (openclaw#189579). - A slow start. An agent with many allowed models or plugins on a slow machine can take longer than 120 seconds to build, including at startup (openclaw#158592, openclaw#173198). This is the one case where a restart may not help, because the next start can miss the same deadline.
One case looks the same but has a different cause: a Discord or Matrix thread created with /acp spawn under agents.ownership: "explicit" fails with … not published for claude (or codex). That comes from how the thread is bound, not from a timeout, and on Matrix a restart was reported not to clear it. Follow openclaw#146365 for that one.
Why health checks miss it
Nothing crashes. The process keeps running, /healthz returns 200, /readyz reports ready, the channels show connected, and Docker reports the container as healthy. On our bot that state lasted about 65 hours, with 8,940 failed replies in the log and no health signal turning red. The log line is the only reliable sign.
How to fix it
- Confirm it. Count the error in the recent log. Anything above zero while the bot is silent means this is your problem:
docker logs openclaw --since 30m 2>&1 | grep -c "runtime owner was not published" - Restart the whole gateway. Reloading the config or a single plugin does not bring the agent back; a full restart usually does. Self-hosted:
docker restart openclaw, or restart the systemd or LaunchAgent service. On OpenClaw Launch, press Restart on the bot card in your dashboard. - Wait for ready, then test. A heavy agent can take a few minutes to come up (ours took about three). Send one message and check that it is answered.
- If it comes back right after every restart, the agent is probably too slow to build within 120 seconds. Cut the list of allowed models and plugins for that agent, check that the machine is not short of CPU, memory or disk, and follow openclaw#158592.
channel_ingress_events table in state/openclaw.sqlite (rows with status pending). Before restarting our bot we stopped it, backed that file up, and marked 14 stale group messages (up to 19 hours old) as failed so they would not be answered out of context. Only touch that table with the gateway stopped and a backup taken. Messages that had already failed for good are not retried; the sender has to send them again.Is it fixed upstream?
Partly, as of 5 November 2026. The plugin case was fixed on OpenClaw's main branch on 3 November (openclaw#191536, for openclaw#189579): a failed plugin replacement now makes the gateway restart itself, though messages that had already failed for good still have to be sent again. As far as we can tell the fix is not in the release notes for 2026.10.10 (the latest stable release) or 2026.11.5-beta.1. The timeout reports (openclaw#158592, openclaw#155852) are still open, and the 120-second deadline is still a fixed value in the source with no setting to change it. Until a release covers your trigger, plan to detect it and restart.
Stop it from lasting days
A small cron check catches it within minutes. This one restarts the container when the error has appeared at least three times since the container last started, so old log lines cannot make it restart again and again:
#!/bin/sh
# Save as /usr/local/bin/openclaw-reply-check.sh, then:
# chmod +x /usr/local/bin/openclaw-reply-check.sh
# and run it every 10 minutes from cron:
# */10 * * * * /usr/local/bin/openclaw-reply-check.sh
C=openclaw
since=$(docker inspect -f '{{.State.StartedAt}}' "$C")
n=$(docker logs --since "$since" "$C" 2>&1 | grep -c "runtime owner was not published")
if [ "$n" -ge 3 ]; then
docker restart "$C"
fi- If the error keeps returning after restarts (the slow-start or
/acp spawncases above), this script would restart the bot every 10 minutes. Turn it off and fix the cause instead. - Run an always-on bot on a machine that does not sleep, such as a VPS, not a laptop.
- After enabling, removing or editing a plugin, restart the gateway fully and send one test message.
- On OpenClaw Launch this state also looks healthy to the container checks, so if your bot goes quiet, press Restart on its card first.
Reading Instance Logs
Instance logs are the fastest way to identify the exact problem. Here's what to look for:
# Self-hosted: view the last 100 lines
docker logs openclaw --tail 100
# Follow logs in real time
docker logs openclaw -fCommon error messages and their meanings:
401 Unauthorizedorinvalid token— Your bot token is wrong or has been revokedplugin not available— The channel plugin is still initializing (wait 30–60 seconds)ETELEGRAM 409 Conflict— Another instance is using the same bot token (only one instance can poll per token)rate limit exceeded— Your AI model provider is throttling requestsinsufficient_quotaorcredit limit reached— Your AI model credits are exhaustedOOMKilled— The container ran out of memory and was killed by Dockerprepared reply dispatch runtime owner was not published for main— The agent's runtime was not republished after a failed rebuild; restart the whole gateway (details)
The Easy Way: Use OpenClaw Launch
Debugging bot tokens, plugin configurations, DM policies, and container health is time-consuming. OpenClaw Launch handles all of this for you with managed hosting that configures everything automatically.
With OpenClaw Launch, your bot connects on the first deploy because tokens, plugins, DM policies, and channel permissions are all pre-configured. Built-in health monitoring automatically restarts unhealthy instances, and you can view logs directly from your dashboard.
| Self-Hosted (DIY) | OpenClaw Launch | |
|---|---|---|
| Bot setup | Manual token + plugin config | Paste token, deploy in 30 seconds |
| DM policy | Configure JSON manually | Auto-configured per platform |
| Health monitoring | Check logs manually | Automatic restart + alerts |
| Log access | SSH + docker logs | View in dashboard |
| Troubleshooting | Debug config files | One-click restart |
| Cost | $5–20/mo (VPS) + time | From $3/mo |
Frequently Asked Questions
Why is my OpenClaw Telegram bot not responding to messages?
The most common causes are: an invalid or revoked bot token, the Telegram plugin still initializing (wait 30–60 seconds after deploy), the pairing process not completed (for dmPolicy: "pairing"), or exhausted AI model credits. Check your instance dashboard for error status and review the instance logs for specific error messages.
My Discord bot is online but ignores all messages. What's wrong?
Discord bots need dmPolicy: "open" with allowFrom: ["*"] to respond to messages. Also verify that the bot has the Message Content Intent enabled in the Discord Developer Portal and has permission to read and send messages in the target channel. Try mentioning the bot with @BotName to trigger a response.
How do I check if my OpenClaw bot has run out of AI credits?
Check your instance logs for error messages like insufficient_quota or credit limit reached. If using OpenRouter, check your credit balance at openrouter.ai/settings/credits. If using a BYOK API key, check the balance directly with your AI provider. On OpenClaw Launch, credit issues appear as warnings in your dashboard.
What does “prepared reply dispatch runtime owner was not published for main” mean?
The OpenClaw agent main lost its ready state after a failed or timed-out runtime rebuild, usually set off by a failed model sign-in refresh, the host waking from sleep, or a plugin change while the gateway was running. The gateway stays up and looks healthy, and every reply fails. A full gateway restart usually clears it. If it comes back after every restart, a slow agent build or an /acp spawn thread binding is the likely cause. A fix for the plugin case is on OpenClaw's main branch but was not listed in any release notes as of 5 November 2026.
Still Not Working?
If none of the fixes above resolved your issue, check these related guides or reach out to support:
- Complete Telegram Bot Setup Guide — Full walkthrough for setting up a Telegram bot with OpenClaw
- Complete Discord Bot Setup Guide — Full walkthrough for setting up a Discord bot with OpenClaw
- Fix “Relay Not Reachable” Error — Troubleshoot browser relay connection issues
- Fix Gateway “Pairing Required” Error — Solve gateway authentication problems
- Contact support: [email protected]