Home · Blog · Why does the Telegram bot not respond?
Why does the Telegram bot not respond?
“The bot is not responding” is not one failure, but eight different ones with the same appearance. Some of them are about Telegram (token, webhook, blocking), some are about the script (turned off, there is no required trigger, the keyword has gone in the wrong direction), one is about the plan. It takes a long time to fix it at random: first you need to understand whether the message reaches CHBT at all, and only then get into the script. Below, each reason is described in the same way: what the symptom looks like, where to look to confirm or rule it out, and what to do. The order is from frequent to rare, so it’s better to go from top to bottom.
Diagnostics in two minutes: three questions before any repair
Before you change anything, answer three questions - they will immediately narrow down the range of reasons.
- Did the message even reach CHBT? Write to the bot from any account and open the “Conversations” section. If the correspondence appears - Telegram, token and webhook are ok, the problem is in the script (reasons 4, 5, 6). If “Conversations” is empty, and the bot responded with a phrase about the plan limit, this is reason 1: messages from new interlocutors over the limit do not end up in “Conversations”. If it is empty and there is no response, the message did not arrive, see the token and webhook (reasons 2 and 3).
- What is visible in "Channels"? Status “Working” — CHBT was able to contact Telegram at last check. “Error” with text underneath - read the text, this is a ready-made diagnosis. "Not verified" — the channel has been added, but has not yet been verified; Click "Reinstall webhook".
- Is the bot completely silent or does it give the wrong answer? Complete silence is one group of reasons. Answer in a short text about the plan limit - reason 1. There is an answer, but the bot “jumps” to another branch or starts over - reason 6.
One more detail: check from an account that has not written to the bot before, or at least send /start again. Your own conversation may be in a special state—handed over to an operator or paused—and you'll fix what isn't broken.
Reason 1. The limit of 30 conversations in the free plan has been reached
Symptom. The bot responds to new people with one short phrase: “Thanks for your message! We can't reply in this chat right now — please write to us later or contact us another way.” The script for them does not run, the buttons do not work, and their messages are not in the “Conversations”. Those who have already written to the bot this month will receive replies as usual, so if you check from your account, you may not notice anything. This is often described to the owner as “the bot is broken and writes some nonsense.”
Check. Open the “Overview” of the project: the plan is indicated in the subheading. If there is “Free”, look at the counter in the plan card on the same page (also in the “Payment” section): “30 out of 30” (or more) means that the limit for this month has been exhausted. The limit is calculated based on unique interlocutors per calendar month, across all project channels together: Telegram, MAX, VKontakte and widget added up. Your own checks from different accounts also count, but the editor's test chat does not. A separate case: you had Basic, but the payment did not go through or auto-renewal is disabled - after the end of the paid period, the project returns to Free with all its limits. This can be seen in the “Payment” section.
Solution. Either wait until the first day of the next month - the counter will reset to zero and the bot will start working on its own - or switch to Basic: the limit is removed immediately after payment. If the bot is needed only for rare calls, 30 conversations may be enough, but then don’t waste them on checks from five accounts - check the logic in the editor’s test chat.
Reason 2: Token is invalid or revoked - error 401
Symptom. In “Channels” the status is “Error”, under it the text “Unauthorized” or “bot token rejected (401 Unauthorized) - probably revoked or replaced.” The owner of the project received a letter about a problem with the channel - CHBT sends it at the first failure of Telegram, no more than once a day. There are no new messages in “Conversations”.
Check. Open @BotFather → /mybots → your bot → “API Token” and compare with what was inserted into CHBT. The match cannot be verified - CHBT does not show the saved token - but if someone from the team did /revoke or the bot was recreated, the old token is definitely dead. The second typical story: the token was not copied entirely or with a space at the end - then the error appears immediately upon connection.
Solution. The token in an existing channel cannot be edited. Delete the channel using the “Delete” button in “Channels” and reconnect Telegram with the current token - the webhook will be installed automatically. Contacts will be saved: they are tied to people’s Telegram IDs and to the project, and not to the channel. If the token was revoked due to a leak, at the same time check where it could have leaked from; the procedure is described in detail in the article how to create a Telegram bot, in the section about /revoke.
Reason 3: Webhook intercepted by another code or service
Symptom. Everything looked fine, the status was “Working”, but messages stopped coming to “Dialogs”. Sometimes the bot responds - but not according to your script, but as it answered before in another service or using the old code.
Check. Telegram has one webhook per bot. If the bot was once launched with its own script on the server or in another constructor, and this script started working again, at startup it called setWebhook or deleteWebhook and took the bot for himself. Remember if the developer’s server was rebooted, or if someone turned on an old project. If the bot also responds with someone else’s phrases, there is no doubt.
Solution. Stop the old code or disable the bot in another service - otherwise the interception will happen again. Then in Channels, click “Reinstall webhook” button: CHBT will re-register the address https://app.chbt.io/webhook/telegram/ID_канала and a secret key. Write to the bot - the message should appear in “Conversations”. Step-by-step instructions for connecting - in the help center.
Reason 4: The script is disabled, empty, or without a /start trigger
Symptom. The message appears in “Dialogs” - which means Telegram and webhook are working - but there is no response. Complete silence in response to /start, to the “Start” button and to any text.
Check. Open “Browse”: at the bottom there is a list of flows, opposite each one there is an “On” or “Off” button. A disabled script does not respond to anything. There are three situations in which a script is turned off unnoticed: you have just created it while another flow answering /start was already on (then the new one is created turned off so it does not override the working one), you made a copy with the “Duplicate” button and edited it (the copy is also created with the option turned off, but you could turn off the original “so as not to interfere”), or the script was turned off by a colleague. If the script is enabled, open it in the editor and look at the first trigger: to react to the “Start” button, you need the “Command /start” trigger. A script that starts with "Keyword" or "Button Press" does not respond to start.
Solution. Enable the desired script. If two are enabled and both respond to /start, the first one will work, so keep one working and turn off drafts. Add a “Command /start” trigger if you don’t have one. Then run “Check Script” in the editor and then live /start from the phone. Consider the opposite effect: the test chat includes the script that you are testing - turn off the draft manually after the test, otherwise it will begin to intercept /start from the worker.
Reason 5. There is no “Any message” trigger: it responds to /start, but not to text
Symptom. The “Start” button works, the menu appears, but as soon as a person writes “hello” or “how much does a haircut cost” - there is silence. In “Conversations” there is a message, but no answer. Often this is not immediately noticed: the owner tests with buttons, and clients write with words.
Check. In the editor, look at the list of script triggers. If there is only “Command /start” and a few “Keywords”, any text that does not match the keyword leads nowhere - CHBT simply does not find which script to run and is silent. This is not a system error, but an honest “they didn’t tell me what to do.”
Solution. Add a trigger “Any message” — it triggers on everything that the other triggers didn’t catch — and direct it to the “Message” block with text like “I’m a salon bot, I answer with buttons. Select what you need:" and the same start menu. One caveat: while a person follows the script (for example, the bot is waiting for a phone in the “Data Collection” block), the “Any message” trigger does not fire - otherwise, each response would take the person to the beginning. It only catches "free" messages outside of the script. A complete list of errors in scripts that make the bot seem broken is in the analysis ten mistakes in bot scripts.
Reason 6: Keyword trigger intercepted input
Symptom. The bot is not silent, but behaves strangely: in the middle of collecting a phone number, it suddenly sends a price list, or after answering a question, it returns the person to the beginning. The client writes: “He doesn’t understand me.” From the owner’s perspective, “the bot does not answer what is asked.”
Check. Keywords in CHBT are checked for every incoming message, even if the person is already inside the script - this is how the “operator” or “menu” command works from anywhere. The downside: if you have the keyword “price” in the “contains” mode, and the bot is at that moment waiting for an answer to the question “What is your budget?”, the answer “I don’t know, depends on the price” will launch a thread with the price, and data collection will be interrupted. Open the list of keywords and the mode of each: “contains” catches the word inside any phrase, “exactly” - only the entire message.
Solution. For transition commands (“menu”, “operator”, “stop”) use the “exact” mode. For thematic words (“price”, “delivery”) - either “exactly” or longer phrases (“how much does it cost”), which are rarely found in answers to the bot’s questions. Don’t have dozens of keywords: the more there are, the more often they are triggered by accident. Check in “Check Script”: go to the “Data Collection” block and enter the answer containing your keywords.
Reason 7. The conversation is with the operator or paused
Symptom. The bot is silent only for one person - most often for yourself or for a colleague who tested yesterday. Other clients receive answers.
Check. Open “Conversations” and find this correspondence. If her status is “Operator” (the “Waiting for a response” tab), the bot fell silent according to your own flow: the “Operator” block was triggered, and now a person from the office must answer - until the operator returns the conversation to the bot. Second option: the script has reached the “Pause” block and waits - a minute, an hour, or until tomorrow morning, as configured. From the client’s point of view, it looks the same: wrote - silence.
Solution. Conversation with the operator - answer from the account or return it to the script using the “Return to bot” button in “Conversations”. To prevent such conversations from being lost, turn on notifications: sound and browser push in the inbox and in “Account → Notifications”. For pauses, check whether the long pause is preceded by the message “I’ll remind you tomorrow at 10:00, in the meantime you can write a question” and whether there is a way out of the pause using a keyword. How the transfer to a person works and what the client sees at this moment is discussed in the article bot or operator.
Reason 8. Telegram does not deliver: blocking, first message, groups
Three situations in which the bot does everything correctly, but the message does not arrive due to the rules of Telegram itself.
The user has blocked the bot. Symptom - in the mailing statistics, some recipients are in the “errors” column, Telegram responds “Forbidden: bot was blocked by the user.” There is nothing to check: the person clicked “Block”, and you cannot write to him until he unblocks and writes again. The solution is to not fix anything; if there are a lot of errors, reconsider the frequency of broadcasts.
The bot tries to write first. Symptom: errors like “chat not found” or PEER_ID_INVALID when sending or when sending from an external system to a contact that the bot does not know. Telegram prohibits the bot from starting a conversation: only those who have at least once written to the bot themselves can write. Checking whether this person is in “Contacts” with the Telegram channel. The solution and workarounds are in a separate analysis PEER_ID_INVALID and “bot cannot write first”.
The bot in the group does not respond to regular messages. Symptom: he answers in private, but in a group he is silent to everything except commands. The reason is BotFather's Group Privacy: in this mode, the bot receives only commands with a slash and messages addressing it. Check - /mybots → Bot Settings → Group Privacy. The solution is to either turn off privacy mode (then the bot will read everything in the group, which is something you should warn participants about), or give the bot administrator rights, or contact it with commands. Important: CHBT scripts are designed for personal conversation with the client - collecting the phone and handing it to the operator in the general chat does not work well, so in groups the bot is usually only expected to respond to commands.
Checklist in three minutes
- You wrote to the bot from a new account - did the message appear in “Conversations”? If not, and the bot responded with a phrase about the limit, go straight to the third point.
- In “Channels” the status is “Working”, without the error text under it?
- Does the bot respond with a stub about the limit? Then “Payment”: plan and conversation counter for the month.
- In "Review" the desired script is "On", but drafts and copies are "Off"?
- The first trigger of the script is “Command /start”?
- Is there an "Any message" trigger for text without a command?
- Keywords – in “precise” mode or in long phrases?
- Doesn't your own conversation hang with the operator and pause?
- If the bot was launched in a different place - was the old code stopped, was the webhook reinstalled?
- Group problem - Group Privacy checked?
The same sequence is briefly in the help “Telegram bot is silent: checklist”. If the bot also works in MAX, reasons 1 and 4–7 are the same for it, and instead of the BotFather token, the token from the MAX account is checked - see. “MAX bot is silent”.
Most points are checked in the office in a minute - start with “Conversations” and “Channels”, and not with rewriting the script. If the bot doesn't exist yet, build it from the template in Telegram bot designer and go through the checklist to the first client: create a bot for free →
Help: checklistHow to create a Telegram botPEER_ID_INVALID: bot cannot write firstTelegram bot constructorPlans