@TomRiddle
Я здесь, потому что ничего не нагуглил XD

Из-за чего возникает ошибка «Bad Gateway», «Server disconnected» и «RetryAfter»?

У меня есть телеграмм бот, который работает на long_polling. С целью выявления ошибок и их последующего дебага записываю все возникающие исключения в лог, который периодически разбираю. В целом работает как должен, но заметил, что иногда даже без активности пользователей бота возникают нижеуказанные ошибки, которые по ощущениям не влияют на его работоспособность, но тем не менее хотелось бы разобраться и решить возможные проблемы:

Ошибка № 1
aiogram.dispatcher.dispatcher | 2022-07-25 04:10:18,904 | Cause exception while getting updates.
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/aiogram/dispatcher/dispatcher.py", line 383, in start_polling
    updates = await self.bot.get_updates(
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/bot.py", line 97, in get_updates
    result = await self.request(api.Methods.GET_UPDATES, payload)
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/base.py", line 208, in request
    return await api.make_request(self.session, self.server, self.__token, method, data, files,
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/api.py", line 140, in make_request
    return check_result(method, response.content_type, response.status, await response.text())
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/api.py", line 128, in check_result
    raise exceptions.TelegramAPIError(description)
aiogram.utils.exceptions.TelegramAPIError: Bad Gateway


Ошибка №2
aiogram.dispatcher.dispatcher | 2022-07-28 23:38:51,181 | Cause exception while getting updates.
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/api.py", line 139, in make_request
    async with session.post(url, data=req, **kwargs) as response:
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/client.py", line 1117, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/client.py", line 544, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/client_reqrep.py", line 890, in start
    message, payload = await self._protocol.read()  # type: ignore
  File "/usr/local/lib/python3.8/dist-packages/aiohttp/streams.py", line 604, in read
    await self._waiter
aiohttp.client_exceptions.ServerDisconnectedError: Server disconnected

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/aiogram/dispatcher/dispatcher.py", line 383, in start_polling
    updates = await self.bot.get_updates(
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/bot.py", line 97, in get_updates
    result = await self.request(api.Methods.GET_UPDATES, payload)
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/base.py", line 208, in request
    return await api.make_request(self.session, self.server, self.__token, method, data, files,
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/api.py", line 142, in make_request
    raise exceptions.NetworkError(f"aiohttp client throws an error: {e.__class__.__name__}: {e}")
aiogram.utils.exceptions.NetworkError: Aiohttp client throws an error: ServerDisconnectedError: Server disconnected


Ошибка №3
aiogram.dispatcher.dispatcher | 2022-07-31 03:43:00,577 | Cause exception while getting updates.
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/aiogram/dispatcher/dispatcher.py", line 383, in start_polling
    updates = await self.bot.get_updates(
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/bot.py", line 97, in get_updates
    result = await self.request(api.Methods.GET_UPDATES, payload)
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/base.py", line 208, in request
    return await api.make_request(self.session, self.server, self.__token, method, data, files,
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/api.py", line 140, in make_request
    return check_result(method, response.content_type, response.status, await response.text())
  File "/usr/local/lib/python3.8/dist-packages/aiogram/bot/api.py", line 111, in check_result
    raise exceptions.RetryAfter(parameters.retry_after)
aiogram.utils.exceptions.RetryAfter: Flood control exceeded. Retry in 5 seconds.


Повторюсь, что ошибки возникают даже вне активности пользователей бота. Попытался что-то нагуглить или найти описание в документации - не смог разобраться...
Из-за чего они возникают? Влияют ли хоть как-то на работу бота? Можно ли их избежать?
  • Вопрос задан
  • 2190 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Bad Gateway - стандартная ошибка HTTP 502, когда промежуточный балансировщик получает некорректный ответ от конечного сервера. Решается повторным коннектом, авось в следующий коннект повезёт...

Server disconnected - соединение, по которому передавались/получались данные, по какой-то причине разорвалось. Причин разрыва - вагон и маленькая тарелочка, решается повторным коннектом.

RetryAfter: Flood control exceeded. Retry in 5 seconds. - ну тут уже прямым текстом наглийскими словами всё сказано, от чего и почему. Решается повторным коннектом через указанное кол-во секунд/минут/часов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы