Падает бот на сервере

Через какое-то время бот падает с ошибкой, точнее он падает и перезапускается, но основная логика без команды /start не продолжает работать.

Я попробовал обработать данную ошибку с помощью true: except Exception:. Рационально ли использовать данную конструкцию при такой ошибке:

requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
ERROR:aiogram.dispatcher:Failed to fetch updates - TelegramNetworkError: HTTP Client says - Request timeout error
WARNING:aiogram.dispatcher:Sleep for 2.248403 seconds and try again... (tryings = 4, bot id = 7378138493)
INFO:aiogram.dispatcher:Connection established (tryings = 5, bot id = 7378138493)

Ответы (1 шт):

Автор решения: Sobolenko.Evgeniy

Попробуйте перехватывать именно эту ошибку:

from requests import JSONDecodeError
import traceback

try:
  response = requests.get(...)
  json = response.json()
except JSONDecodeError as ex:
  logger.warning(f'Получена ошибка {ex}')
  logger.debug(f'{traceback.format_exc()}')

Если вы получаете json у response попробуйте заменить его на response.text и посмотреть, что вам прилетает, возможно ответ не в формате json.

Может быть банально сетевая проблема и тогда простой перехват ошибки поможет защитить бота от падения.

→ Ссылка