Проверка вебхука Telegram через getWebhookInfo
getWebhookInfo показывает, может ли Telegram доставлять обновления вашему боту. Разберём каждое поле и самые частые ошибки доставки.
Сделайте это в пару кликов — без кода и сервера, прямо в браузере.
Проверить мой вебхукПоля WebhookInfo
| Поле | Значение |
|---|---|
url | Текущий URL вебхука. Пусто — бот использует getUpdates (long polling). |
pending_update_count | Обновления, ожидающие доставки. Растущее число значит, что сервер их не принимает. |
last_error_date, last_error_message | Время (Unix) и текст последней ошибки доставки. |
last_synchronization_error_date | Ошибка синхронизации обновлений между дата-центрами Telegram; обычно временная. |
ip_address | IP-адрес, на который Telegram сейчас отправляет запросы. |
max_connections | Максимум одновременных соединений. |
allowed_updates | Типы обновлений в подписке; если поля нет — набор по умолчанию. |
has_custom_certificate | Был ли загружен самоподписанный сертификат. |
Проверка через curl
curl "https://api.telegram.org/bot$BOT_TOKEN/getWebhookInfo"Пример ответа:
{
"ok": true,
"result": {
"url": "https://example.com/telegram/webhook",
"has_custom_certificate": false,
"pending_update_count": 12,
"ip_address": "203.0.113.10",
"last_error_date": 1791446400,
"last_error_message": "Wrong response from the webhook: 502 Bad Gateway",
"max_connections": 40,
"allowed_updates": ["message", "callback_query"]
}
}Типичные значения last_error_message
SSL error {error:...:certificate verify failed}— неполная цепочка сертификатов, истёкший или самоподписанный сертификат. Установите полную цепочку (fullchain.pem) или загрузите публичный ключ самоподписанного.Connection timed out/Read timeout expired— сервер недоступен или отвечает слишком долго. Сразу отвечайте 200, а обновление обрабатывайте в фоне.Connection refused— на порту никто не слушает или файрвол блокирует IP-адреса Telegram.Failed to resolve host: Name or service not known— проблема с DNS домена.Wrong response from the webhook: 404 Not Found— неверный путь в URL или маршрутизация.Wrong response from the webhook: 401 Unauthorized/403 Forbidden— сервер отклоняет запрос, часто из-за несовпадения секретного токена.Wrong response from the webhook: 500/502/503— обработчик падает или не работает upstream за прокси. Смотрите логи сервера.
После исправления
Обновите состояние: last_error_date не сбрасывается до следующей ошибки, поэтому сравните её время с текущим. Если в очереди устаревшие обновления, удалите их через drop_pending_updates.
Сделайте это в пару кликов — без кода и сервера, прямо в браузере.
Проверить мой вебхук