Limits & Errors
Analytics availability, what Telegram's Bot API does not expose and the common errors when publishing.
Analytics
Telegram's Bot API exposes no analytics, so there are none for Telegram accounts. View counts for channel posts are visible in the Telegram app, and channels with 500 or more subscribers get Telegram's own channel statistics there.
What you cannot do
Telegram's Bot API does not expose:
- Polls or quizzes
- Telegram's own scheduled messages (schedule with
scheduledForinstead) - Replacing the media on a published post (only the text or caption can be edited)
- Managing channel administrators
- Message analytics
- Pinning messages
- Channel invite links
Common errors
| Error | Cause | Fix |
|---|---|---|
| "Bot is not a member of the channel" | @ZernioScheduleBot is not in the channel or group, or is not an administrator | Add the bot as an administrator and grant the Post Messages permission. |
| "Message is too long" | Text over 4,096 characters, or a caption over 1,024 | Shorten the content or split it into several messages. |
| "Wrong file identifier/HTTP URL specified" | The media URL is not reachable, uses HTTP, or redirects | Use a direct, public HTTPS URL with no redirects. |
| "Can't parse entities" | Broken HTML or Markdown, or an unescaped MarkdownV2 character | Close every tag in HTML mode; escape the reserved characters in MarkdownV2. |
| Media not displayed | An unsupported format, or a video over 200 MB, which is too large for Zernio to compress under Telegram's 50 MB cap | Check the format; compress a video over 200 MB before you send it. |
| "Access code expired" | The code was not used within 15 minutes | Generate a new code with GET /v1/connect/telegram. |
A publishNow: true post that Telegram rejects returns 207 with post.status: "failed" and the message in platforms[].errorMessage:
{
"message": "Post created but publishing failed",
"error": "All platforms failed",
"post": {
"_id": "65f1c0a9e2b5af0012ab34cd",
"status": "failed",
"platforms": [
{
"platform": "telegram",
"status": "failed",
"errorMessage": "Bot is not a member of the channel"
}
]
}
}207 is a 2xx status, so fetch(...).ok is true; branch on the status code and on post.status. Make the bot an administrator with post permission, then retry. Error handling covers the envelope.
Was this page helpful?