All articles
GuideMonetization

Telegram bot limits: what actually breaks paid communities at scale

SASemyon Akhrameev·October 14, 2026·8 min read

A paid Telegram channel usually starts simple. Someone pays, you send them a link, and every few weeks you remove the people who stopped paying. Then the community grows past a few hundred members, you hand the routine to a bot, and things that never broke by hand start breaking quietly.

Most of these failures aren't bugs in Telegram. They come from how the Bot API works: what it limits, which rights a bot needs, and what happens when a request fails. Here's what's actually documented, where paid-access setups break, and how we built TribeSync to handle each case.

1. Telegram limits how fast a bot can send — and answers "too many" with an error

Telegram's bot FAQ publishes three limits (source):

  • about one message per second in a single chat;
  • 20 messages per minute in a group;
  • about 30 messages per second for bulk notifications across users.

Short bursts above that are tolerated. Past them, the bot starts getting 429 errors. A 429 isn't a dropped request: Telegram rejects it and tells the bot how many seconds to wait (retry_after) before trying again (Bot API: ResponseParameters).

Why paid communities hit this. Messages aren't the only thing a paid-access bot does at once. When a batch of subscriptions ends on the same day, the bot removes each member and usually sends each one a "your subscription ended" note. That's a burst of API calls from one bot. If the bot treats a 429 as a final failure, that member simply doesn't get removed, and nobody notices.

How TribeSync handles it. When Telegram returns a 429, our bot waits the retry_after Telegram asks for and repeats the call. Removals are processed bot by bot with a short pause between members, because the limits apply to each bot separately. If Telegram asks us to wait longer than a few seconds, we don't stall: that member is picked up on the next run.

2. A removal that fails must be retried, not forgotten

This is the failure that costs money. An automation marks a subscription as "expired" and then tries to remove the member. If the removal fails (a rate limit, a Telegram hiccup, a bot that lost its rights), the record already says "expired", so nothing ever tries again. The member stays in your paid chat for free, indefinitely.

How TribeSync handles it. Removal comes first, the status change comes second. A subscription is marked expired only after the member is actually out of the chat. If removal fails, the subscription stays in the queue and is retried on the next run. That doesn't give anyone extra access in the meantime: a lapsed subscription can't approve a new join request or count toward your plan's subscriber limit.

If a removal keeps failing for a week (say, the bot was deleted), we stop retrying and alert the operator to check it by hand, so one broken setup doesn't generate alerts forever.

Two edge cases are treated as "done" rather than as failures:

  • The member already left or deleted their account. The goal, "not in the chat", is already met.
  • The member is the chat owner or an admin. Telegram never lets a bot remove them. This usually happens when the owner buys their own subscription to test the flow.

3. Removing someone shouldn't lock them out of paying again

In the Bot API, "remove a member" is really "ban", and a banned user can't rejoin through invite links until they're unbanned (Bot API: banChatMember). So a removal is normally a ban followed by an unban. If the unban fails, a former subscriber who wants to renew can't get back in, even after paying.

How TribeSync handles it. We use a timed ban. Telegram lets a ban carry an end date (until_date), and in supergroups and channels it lifts the ban on its own when that time passes. Ours lasts about a minute. We still send the unban right away, but even if that call fails, nobody stays locked out.

4. Auto-renewing Stars subscriptions need a little slack

Telegram Stars supports real recurring subscriptions: the subscriber is charged every 30 days, and each renewal arrives at the bot as a new payment with a fresh expiration date. The renewal payment and the expiration date don't always line up to the minute. If a bot removes members the moment the date passes, it can remove someone whose renewal is about to land, and then show a paying member a "your subscription ended" message.

How TribeSync handles it. One-off subscriptions are removed as soon as they've expired. Auto-renewing Stars subscriptions get an extra 24 hours before removal, so a renewal that lands a bit late simply extends access as normal.

Removal runs once a day. In practice, a member whose one-off subscription ended is removed within a day, and one who cancelled auto-renewal within two.

5. Missing admin rights fail silently

Every step of paid access depends on specific admin rights. Creating invite links and approving join requests require the bot to be an admin with the "Invite users via link" right (createChatInviteLink, approveChatJoinRequest). Removing members requires the right to ban users (banChatMember).

Owners often add a bot with fewer rights "to be safe", or Telegram's "add admin" dialog doesn't preselect the right ones. Payments still go through, but the bot can't let the buyer in or can't remove anyone later.

How TribeSync handles it. When you connect your bot, TribeSync sets its default admin rights through the Bot API (setMyDefaultAdministratorRights), so Telegram's "add as admin" dialog already suggests the rights it needs: invite users, ban users, delete messages for moderation. It doesn't ask for more, such as changing chat info or promoting admins. If a removal fails because rights are missing, it's retried and you get an alert instead of silence. If the bot is removed from the chat entirely, new sales pause and the panel asks you to re-add it. Existing members keep their access, and everything resumes once the bot is back.

6. Your group can change its ID

When a regular Telegram group grows or you change certain settings, Telegram upgrades it to a supergroup, and the supergroup gets a new chat ID. The bot receives a service message pointing to the new ID (migrate_to_chat_id, see Bot API: Message). Any automation that keeps using the old ID starts failing on every call.

How TribeSync handles it. The bot listens for that migration message and moves your paid access and moderation to the new ID automatically. There's nothing for you to do. Details are in our help article on groups becoming supergroups.

7. Access goes only to the person who paid

The classic leak in paid Telegram communities is a forwarded invite link. If the link admits whoever clicks it, one buyer can let in their friends.

How TribeSync handles it. After payment, the buyer gets a personal link that creates a join request instead of letting people in directly (createChatInviteLink with join requests). The link expires after 24 hours. When a request comes in, the bot approves it only if that Telegram account has an active, unexpired subscription. Anyone else who taps a forwarded link is declined.

Why your own bot matters here

Telegram's limits apply to each bot. With TribeSync you connect your own bot, created in @BotFather, so the request budget, the admin rights and the Stars revenue all belong to your bot and your community. Telegram Stars from your subscribers go to your bot's balance, and crypto (USDT/TON) goes to your own CryptoBot wallet. TribeSync never holds the money and charges a flat platform fee, with 0% TribeSync commission on your sales.

The short checklist

If you run paid access on Telegram, whatever tool you use, check that:

  1. a 429 makes the bot wait and retry, rather than give up;
  2. a member is marked expired only after they're actually removed, and failed removals are retried;
  3. a removal can't lock out someone who wants to renew;
  4. auto-renewing subscriptions aren't cut off minutes before the renewal lands;
  5. the bot has the "Invite users via link" and "Ban users" rights, and you hear about it when it doesn't;
  6. a group-to-supergroup upgrade doesn't break your automation;
  7. invite links admit only the person who paid.

TribeSync covers all seven out of the box, alongside built-in moderation. You can try it free for 7 days, no card required: connect your bot, link your chat, and set your first subscription in a couple of minutes.

SA
Semyon Akhrameev
Founder, TribeSync
Share:Telegram
Launch a paid subscription today

Connect your bot, set a plan — payments and access run on autopilot. No commission on payments.

Read also