← back to blog

What happens to a Telegram bot when its developer leaves

A Telegram bot doesn’t belong to the person who wrote its code. It belongs to whoever controls its token. That distinction sounds small until the developer who built your bot leaves the company, drops off Telegram, or just stops answering messages, and someone realizes nobody else knows how to get in.

We run managed Telegram hosting and proxy infrastructure, and this question comes up more than most people expect. A bot is quietly running a support desk, a trading alert feed, or a community moderation flow, and the one person who set it up is no longer reachable. Here’s what actually happens, mechanically, and what to do before it does.

The token is the account, not the code

Every Telegram bot is created through BotFather, and BotFather issues a token tied to the Telegram account that ran the /newbot command. That token is a bearer credential. Whoever has it can call the Bot API, set the webhook, change the bot’s name and description, and read whatever the bot’s server sends back to Telegram.

The source code matters for what the bot does, but it doesn’t matter for who controls it. You can have the entire codebase in a git repo you own outright, and still not control the bot, because control lives in BotFather and in the token, both of which sit under the original creator’s Telegram account.

This is the part people get wrong. They think “we own the repo, we own the bot.” You own the logic. You don’t own the identity until you own the token and the BotFather account it’s registered under.

What actually breaks when a developer disappears

A few things stop working, and they stop for different reasons:

The webhook server goes dark first, usually within hours, because it was running on the developer’s own VPS or a free-tier host tied to their personal account. Telegram keeps trying to deliver updates, gets no response, and after enough failures it stops pushing new ones. Your bot looks “down” even though nothing about the bot itself changed.

Database access goes next if the bot’s data lives in a database the developer provisioned under their own cloud account. Connection strings, credentials, and backups are often stored in an .env file or a secrets manager entry that nobody else has access to.

Domain and TLS renewal is the slow one. If the webhook URL points at a domain the developer registered, it keeps working right up until the renewal date, then the whole thing fails at once with no warning to anyone still using the bot.

None of this is Telegram’s doing. Telegram just keeps trying to reach a webhook URL. Everything that breaks is on the infrastructure side, which is usually less documented than the bot logic itself.

BotFather does have a transfer path

If you do have access to the Telegram account that owns the bot, BotFather supports transferring bot ownership to another account through its /mybots menu. The process asks the receiving account to have two-step verification enabled before the transfer completes, which is Telegram’s way of making sure the new owner’s account can’t be taken over as easily as a bare phone number login. Once the transfer goes through, the new account shows up in its own /mybots list with full control: token regeneration, payment provider settings, bot profile edits, everything.

This is the clean path. It requires the departing developer to still be reachable and cooperative, and it requires whoever’s taking over to already have a Telegram account set up with 2FA before you start. If you wait until the developer has gone quiet to try this, you’ve missed the window.

When you can’t reach the original owner

If the account that owns the bot is gone (deactivated, deleted, or just unreachable) there’s no override. Telegram support doesn’t arbitrate ownership disputes over bots the way domain registrars sometimes arbitrate domain disputes. There’s no code repository proof or business registration that grants you access to someone else’s BotFather account.

In that situation the only real option is to create a new bot under an account you control, migrate whatever logic and data you still have access to, and treat the old bot as retired. Any users who had the old bot in their chat list have to be pointed to the new one. Any channels or groups where the old bot has admin rights need the new bot re-added and re-permissioned by whoever administers those chats. It’s a full migration, not a handover, and it’s a lot more disruptive than a token transfer would have been.

Admin rights don’t move with the bot

If your bot moderates a group or manages a channel, that role is granted to the bot’s account by whoever has admin rights in that chat, separate from BotFather entirely. Transferring the bot in BotFather does not touch its standing in any group. If you migrate to a new bot instead of transferring the old one, someone with admin rights in every one of those groups has to manually add the new bot and grant it permissions again. For a bot in a handful of communities that’s an afternoon. For a bot sitting in dozens of groups it’s a project, and it depends on tracking down whoever the admins are in each one.

Infrastructure ownership is a separate problem from Telegram ownership

Even a clean BotFather transfer doesn’t solve the hosting side. The token moving to a new account doesn’t move the server, the database, the cron jobs, or the deployment pipeline. Those live wherever the developer set them up, often under a personal cloud account, sometimes on a machine sitting under someone’s desk.

This is the part we deal with directly running managed hosting. A bot that’s hosted on infrastructure the business actually controls, with credentials stored somewhere the business can access without depending on one person’s laptop or personal cloud login, survives a staffing change without drama. A bot running on a developer’s personal server, reachable only through SSH keys nobody else has, doesn’t.

A basic checklist before a developer leaves

If you know someone who built or maintains a bot is heading out, a few concrete steps beforehand save you the migration scenario:

Confirm which Telegram account owns the bot in BotFather, and get that account added to your own two-step verification checklist so it’s not tied to a phone number only the departing developer controls.

Run the BotFather transfer to an account your organization controls, with 2FA already enabled on the receiving side, before the departure date, not after.

Move the webhook server and database off any personal hosting account onto infrastructure your organization pays for and has admin access to. If credentials live in an .env file, get that file, or better, put the values in a secrets manager more than one person can reach.

List every group and channel the bot administers, and confirm at least one other admin in each has the ability to re-add or re-permission the bot if it ever needs to move.

Document the webhook URL, the domain it depends on, and who owns that domain’s registration and renewal.

None of this is complicated on its own. It’s just easy to skip when the bot is working fine and nobody’s thinking about what happens if the one person who understands it disappears.

A bot with no clear owner isn’t broken today, but it’s one departure, one expired card on a hosting account, or one forgotten renewal away from going dark with no clean way back in. If you’re setting up a new bot or trying to untangle who actually controls one you already run, we handle Telegram hosting, proxy configuration, and account safety for exactly this kind of setup. Get in touch through telegramvault.org and we can walk through what your bot’s current ownership actually looks like.

Get new guides and videos first — join the Telegram channel.

need infra for this today?