RuntimeError: Timeout context manager should be used inside a task - aiogram

Пишу тестового бота, чтобы разобраться с aiogram. При запуске бота сразу появляется ошибка Timeout context manager should be used inside a task при вызове dp.start_polling(bot)

Код программы main.py:

bot = Bot(config.BOT_KEY)
dp = Dispatcher(bot)
setup_handlers(dp)

async def main():
    await dp.start_polling(bot)

if __name__ == "__main__":
    try:
        asyncio.run(main())
    except Exception as ex:
        log.error(ex)

handlers.py:

def setup_handlers(dp: Dispatcher):
    dp.register_message_handler(_on_start, Command("start"))
    dp.register_message_handler(_get_info, Command("info"))


async def _on_start(message: types.Message): 
    await message.answer(messages.hello_message)


async def _get_info(message: types.Message):
    await message.answer(messages.info)

Используемые версии:

Python     3.11.6
aiogram    2.9
aiohttp    3.9.1
aiosignal  1.3.1

Стек ошибки

Traceback (most recent call last):
  File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/main.py", line 19, in <module>
    asyncio.run(main())
File "/data/data/com.termux/files/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^ 
File "/data/data/com.termux/files/usr/lib/python3.11/asyncio/runners.py", line 118, in run                                                                            return self._loop.run_until_complete(task)                                                                                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                        File "/data/data/com.termux/files/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete                                                         return future.result()                                                                                                                                                     ^^^^^^^^^^^^^^^                                                                                                                                            File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/main.py", line 16, in main                                                                          await dp.start_polling(bot)                                                                                                                                       File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/dispatcher/dispatcher.py", line 288, in start_polling     await self.reset_webhook(check=False)                                                                                                                             File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/dispatcher/dispatcher.py", line 259, in reset_webhook     return await self.bot.delete_webhook()                                                                                                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                            File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/bot/bot.py", line 143, in delete_webhook                  result = await self.request(api.Methods.DELETE_WEBHOOK, payload)                                                                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/bot/base.py", line 201, in request
    return await api.make_request(self.session, self.__token, method, data, files,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiogram/bot/api.py", line 103, in make_request
    async with session.post(url, data=req, **kwargs) as response:
  File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiohttp/client.py", line 1187, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiohttp/client.py", line 500, in _request
    with timer:
  File "/data/data/com.termux/files/home/code/PythonProjects/tg-bot/venv/lib/python3.11/site-packages/aiohttp/helpers.py", line 715, in __enter__
    raise RuntimeError(
RuntimeError: Timeout context manager should be used inside a task

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

Автор решения: LightChimera

Как я понял, это была ошибка прошлых версий aiogram, но при попытке обновиться до более новой версии все время происходила какая-то внутренняя ошибка pip`a. Установил компилятор Rust, после чего удалось обновить aiogram до версии 3.2.0 и ошибка исчезла.

→ Ссылка