Your OpenClaw Telegram bot was working perfectly. You ran openclaw update. Now the bot shows as online in Telegram but does not reply to anything. No pairing prompt, no error banner, just silence. Messages disappear into the void.
This is one of the most common post-upgrade surprises, and the fix takes about two minutes once you know what changed. Upgrades tightened how OpenClaw matches Telegram identities: allowlist entries in the old @username format stopped matching reliably, and OpenClaw now wants numeric Telegram user IDs everywhere identity checks happen. When your message arrives and the configured identity does not match, it is dropped as if it came from an unknown sender. Silent, by design.
What changed in the upgrade
Two identity rules hardened in recent OpenClaw versions, and both produce the same silent symptom:
- Username entries no longer match. Setup now asks for numeric user IDs only. Config that still lists
@yourhandleunder an allowlist field does not match your actual sender ID (something like6227582470), so every message from you is treated as unauthorized and dropped. OpenClaw includes a migration helper for this exact case:openclaw doctor --fixresolves old@usernameentries to numeric IDs on a best-effort basis (it needs the bot token configured). - Group authorization stopped inheriting DM approvals. Since 2026.2.25, group sender authorization never inherits DM pairing-store approvals. If your bot used to answer in a group because you had approved a DM pairing, that path is now closed by default: groups read their own allowlist sources (
groupAllowFrom, falling back toallowFrom). DM pairing now grants DM access only, nothing else.
On top of those, two quieter defaults cause the same silence: requireMention: true on a group means plain group messages never trigger the bot (mention it with @your_bot), and BotFather privacy mode hides group messages the bot was not directly addressed in. More on those below.
Confirm this is your problem
Tail the logs and send yourself a message on Telegram:
user@host:~$ openclaw logs --follow
Send a DM to the bot and watch what the log does with it. If the incoming message is rejected or never routed to a session, and the line mentions the sender or the allowlist, identity matching is your problem. A working message, by contrast, is routed and answered. The from.id in the logged update is your numeric user ID, which you need for the fix (more below).
Step 1: See what your channel config actually holds
Open the current Telegram block and look for identity fields:
A few things to look for. If dmPolicy is pairing, DM access is granted by approving a pairing request, and allowFrom may be empty; that is a valid setup, but remember pairing covers DMs only. If dmPolicy is allowlist, then allowFrom must contain your numeric ID or every DM is dropped. And if any field anywhere still holds @something entries, those are the legacy entries that stopped working.
Step 2: Get your numeric user ID
You need the number (for example 6227582470), not your username. Three ways to get it:
- Safest, no third party: DM your bot while
openclaw logs --followis running and readfrom.idfrom the logged update. - Quick: message @userinfobot (or @getidsbot); it replies instantly with your numeric ID.
- Official API: call the Bot API
getUpdatesmethod with your bot token and readmessage.from.idfrom the JSON.
Step 3: Put numeric IDs in the right fields
The same identity is read by three different access paths, and each reads its own config field. The diagram shows where everything goes:

Concretely, to authorize yourself for DMs and as the owner:
# One-owner bot pattern (JSON5 in ~/.openclaw/openclaw.json) channels: { telegram: { dmPolicy: "allowlist", allowFrom: ["6227582470"], groupPolicy: "allowlist", groups: { "-1001234567890": { requireMention: true } } } }, commands: { ownerAllowFrom: ["telegram:6227582470"] }
Notes that save you a round trip:
groupAllowFromis optional for one-owner bots. When it is unset, groups fall back toallowFrom, so your DM identity also works in allowed groups.groupsholds negative chat IDs (like-1001234567890), never your user ID. WithgroupPolicy: "allowlist"(the default) a group stays blocked until its chat ID is listed or"*"is used.commands.ownerAllowFromwants the prefixed formtelegram:<your user id>. This is what unlocks owner-only commands and exec approvals from Telegram.- The
telegram:ortg:prefix is accepted and normalized on allowlist entries, so you may see either form in examples.
Then apply and confirm the channel comes back:
The probe output on a healthy channel reads like this. The fields that matter: running, connected, a recent in/out time, and works at the end. If you see works after the restart but the bot still ignores you in a DM, the channel is fine and the identity config is still dropping you, so re-check allowFrom. If the probe itself fails, the channel is not the problem; the gateway is, and the related fixes at the bottom of this post cover those cases.
Step 4: If group messages are still silent
When DMs work but groups stay quiet, work through these in order:
- Mention the bot. With
requireMention: true(the default in many setups, and present on the config shown above), plain group messages never trigger the bot. Test with@your_bot ping. - Check the group is allowed. Under
groupPolicy: "allowlist", your group chat ID must be listed underchannels.telegram.groups. - Check BotFather privacy mode. Run
/setprivacywith @BotFather. Privacy mode on means Telegram only forwards the bot messages that mention it, so group silence with mention-based triggers is expected. Disable privacy mode if you want the bot to see all group traffic, or keep it on and always mention the bot. - Re-check the sender path. Group sender authorization comes from
groupAllowFromor theallowFromfallback, never from DM pairing history.
Quick reference
# Diagnose: watch an incoming message openclaw logs --follow # Inspect identity config openclaw config get channels.telegram # Migrate legacy @username entries (needs bot token) openclaw doctor --fix # Apply and verify openclaw gateway restart openclaw channels status --probe
Related fixes
Silence after an upgrade has a few other faces. If nothing arrives in any channel, see channel routing. If commands run but every exec pauses for approval, see the exec approval fix, and if the gateway itself will not start, the EADDRINUSE fix. New to OpenClaw? Start with The Complete OpenClaw Guide.
Not Ready to Self-Host? Try ClawTrust
Building agents locally is powerful, but managing infrastructure, security, and scaling takes effort. ClawTrust provides managed OpenClaw hosting: your agents run securely in the cloud with automatic scaling, no DevOps overhead, and 24/7 monitoring.
This post contains affiliate links. If you buy through them, I may earn a small commission at no extra cost to you.


This saved me so much time. I updated OpenClaw last night and woke up to a completely silent bot. Checked the logs like you suggested and sure enough it said blocked right after every message I sent. Swapped in my numeric ID, restarted, and it was back to normal in under two minutes. I never would have figured out the @username vs numeric ID distinction on my own.
Glad it got you sorted quickly, Dmitri. The silent drop behavior is what trips most people up. No error message, no warning, just silence. Once you know to check the logs first it becomes a pretty fast diagnosis.
Mine stopped after a system update too, though mine turned out to be a different issue with the webhook URL. Worth checking that as well if the steps here do not work.
That is a real concern. On OpenClaw Stopped Replying Telegram After, I would keep guardrails in place from the start and watch the first few runs closely. Once you see the pattern, it gets much easier to tune without adding unnecessary risk.
Quick question. I ran openclaw security audit and it flagged my allowlist but did not tell me what the correct value should be. Is there a command to get my numeric Telegram ID directly through OpenClaw, or do I have to use the @userinfobot method you mentioned?
Right now the quickest way is still @userinfobot in Telegram, it replies in seconds. OpenClaw does not have a built-in command to surface your Telegram user ID directly, but that is a good feature suggestion. If you tail the logs while sending a message you will also see your numeric ID appear in the blocked output, so that is another way to grab it without leaving the terminal.
Worth noting for anyone running multiple Telegram accounts through OpenClaw. You need to add the numeric ID for each account separately. I only updated the first entry in my allowlist and spent another 20 minutes confused about why one account worked and the other still did not. Check all your allowedUsers entries, not just the first one.
Really good callout, Tom. Multi-account setups are easy to miss because fixing one entry feels like it should fix everything. I will add a note to the post flagging this for people running more than one account. Appreciate you sharing it.