Падает бот на сервере
Через какое-то время бот падает с ошибкой, точнее он падает и перезапускается, но основная логика без команды /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
.
Может быть банально сетевая проблема и тогда простой перехват ошибки поможет защитить бота от падения.