Ошибка "таймаут семафора" телеграм бот aiogram
Столкнулся с ошибкой, которая не даёт моему боту работать стабильно. Любая работа с медиа файлами и inline клавиатурами может приводить к данной ошибке:
raise exceptions.NetworkError(f"aiohttp client throws an error:
{e.__class__.__name__}: {e}")
aiogram.utils.exceptions.NetworkError: Aiohttp client throws an error: ClientOSError:
[WinError 121] Превышен таймаут семафора
Если ошибка возникает, то бот не отвечает на запросы пользователя, хотя функции работают, но через раз...
Например у меня есть функция отправки сообщения с inline клавиатурой:
@dp.message_handler(lambda message: message.text == "?Главное меню?" or message.text == "?Назад")
async def main_menu(message: types.Message):
"""Главное меню"""
chat_id = message.chat.id
if chat_id in out_state:
del out_state[chat_id]
if chat_id in out_info:
del out_info[chat_id]
await bot.send_message(chat_id, texts.main_menu, reply_markup=main_keyboard(), parse_mode=ParseMode.HTML)
if chat_id in BotDB.get_all_admin_user_ids():
await bot.send_message(chat_id, texts.adminCommands, parse_mode=ParseMode.HTML)
И также сама inline клавиатура:
def main_keyboard():
keyboard = types.InlineKeyboardMarkup(row_width=1)
click_button = types.InlineKeyboardButton("⚡️Клик", callback_data="click")
curs_button = types.InlineKeyboardButton("?Курс", callback_data="curs")
vallet_button = types.InlineKeyboardButton("?Кошелёк", callback_data="vallet")
ref_button = types.InlineKeyboardButton("?Рефералы", callback_data="ref")
change_button = types.InlineKeyboardButton("?Обмен", callback_data="change")
out_button = types.InlineKeyboardButton("?Списать коины", callback_data="out")
ads_button = types.InlineKeyboardButton("?Реклама", callback_data="soon")
work_button = types.InlineKeyboardButton("✨Задания", callback_data="soon")
info_button = types.InlineKeyboardButton("ℹИнформация", callback_data="info")
keyboard.add(click_button, curs_button, vallet_button, ref_button, change_button, out_button, ads_button, work_button, info_button)
return keyboard
При попытке вызвать данное меню бот может зависнуть и выдать ошибку семафора или наоборот моментально ответить.
Пытался сам понять в чем проблема, но так решения не нашёл. Возможно если запустить на сервере проблема исчезнет, но у меня нет возможности это проверить.
Сталкивался ли кто-то с данной проблемой?
Ответы (2 шт):
Думаю Вы уже прошерстили весь рунет в поисках ответа, но нашли только догадки так вот...
Как я решил эту проблему - погнал траффик своего серва через арендованный сервер вне РФ, и о чудо, трабл исчез.
Вы можете просто поставить vpn, или пустить трафик python через прокси.
В чем же проблема? Вопрос к провайдеру...
На данный момент у многих происходят проблемы с телеграмом, например:
Бот изменяет сообщение с задержкой
Определённые команды в какой - либо момент просто перестают доходить до бота
У некоторых телеграм не работает без VPN.
Есть несколько вариантов решения:
Попробовать использовать VPN
Попробовать запустить бота на хостинг-сервере, из бесплатных (не реклама, но сам проверял): 2.1 Serv00.com (лучше попробовать первым, т.к. ограничены места)
2.2 Pythonanywhere
2.3 Google shell
2.4 Google Collab
2.5 Сайт для запуска python кода и возможностью установки библиотек
2.6 Онлайн виртуалки (onworks например, но pip прийдется ставить через get-pip)
2.7 Онлайн эмуляторы UNIX терминала
Проверить скорость интернета
Сменить библиотеку (предкрайний случай)
(Уже крайний случай) Сменить провайдера