Middleware does not work on aiogram 3.4.1
Opened this issue · 0 comments
maksachve commented
Creating a bot:
def bot(self) -> Bot:
session: AiohttpSession = AiohttpSession(
json_loads=mjson.decode,
json_dumps=mjson.encode
)
session.middleware(AiogramSulgukMiddleware())
session.middleware(RetryRequestMiddleware())
bot: Bot = Bot(
token=self.settings.bot_token.get_secret_value(),
session=session,
default=DefaultBotProperties(
parse_mode=SULGUK_PARSE_MODE
)
)
return bot
Sending a message:
async def cmd_start(
event: types.Message
) -> None:
await event.answer("Hello!")
Ошибка:
[25.02.2024 13:28:54] ERROR | asyncio: Task exception was never retrieved future: <Task finished name='Task-8' coro=<BaseRequestHandler._background_feed_update() done, defined at /home/FMR/application/webhook.py:75> exception=TelegramBadRequest('Telegram server says - Bad Request: unsupported parse_mode')> Traceback (most recent call last): File "/home/FMR/application/webhook.py", line 76, in _background_feed_update result = await self.dp.feed_raw_update(bot=bot, update=update, **self.data) File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 189, in feed_raw_update return await self.feed_update(bot=bot, update=parsed_update, **kwargs) File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 158, in feed_update response = await self.update.wrap_outer_middleware( File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/error.py", line 25, in __call__ return await handler(event, data) File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/middlewares/user_context.py", line 27, in __call__ return await handler(event, data) File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/fsm/middleware.py", line 41, in __call__ return await handler(event, data) File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger return await wrapped_inner(event, kwargs) File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
return await wrapped()
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py", line 276, in _listen_update
return await self.propagate_event(update_type=update_type, event=event, **kwargs)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
return await self._propagate_event(
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 156, in _propagate_event
response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 128, in propagate_event
return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 123, in _wrapped
return await self._propagate_event(
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/router.py", line 148, in _propagate_event
response = await observer.trigger(event, **kwargs)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
return await wrapped_inner(event, kwargs)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
return await wrapped()
File "/home/FMR/bot/handlers/start.py", line 9, in cmd_start
await event.answer("Hello!")
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/methods/base.py", line 84, in emit
return await bot(self)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/client/bot.py", line 492, in __call__
return await self.session(self, method, timeout=request_timeout)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/client/session/base.py", line 254, in __call__
return cast(TelegramType, await middleware(bot, method))
File "/home/FMR/venv/lib/python3.10/site-packages/sulguk/aiogram_middleware.py", line 50, in __call__
return await make_request(bot, method)
File "/home/FMR/bot/middlewares/request/retry.py", line 51, in __call__
return await make_request(bot, method)
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/client/session/aiohttp.py", line 178, in make_request
response = self.check_response(
File "/home/FMR/venv/lib/python3.10/site-packages/aiogram/client/session/base.py", line 120, in check_response
raise TelegramBadRequest(method=method, message=description)
aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: unsupported parse_mode
If you additionally specify sulguk as the parse_mode of the message sending method, then there are no errors:
async def cmd_start(
event: types.Message
) -> None:
await event.answer("Hello!", parse_mode=SULGUK_PARSE_MODE)