diff --git a/CHANGES/1196.bugfix.rst b/CHANGES/1196.bugfix.rst new file mode 100644 index 00000000..db6594a6 --- /dev/null +++ b/CHANGES/1196.bugfix.rst @@ -0,0 +1 @@ +Fixed workflow data propagation diff --git a/aiogram/dispatcher/dispatcher.py b/aiogram/dispatcher/dispatcher.py index 9c61a447..18bd5c73 100644 --- a/aiogram/dispatcher/dispatcher.py +++ b/aiogram/dispatcher/dispatcher.py @@ -500,11 +500,10 @@ class Dispatcher(Router): workflow_data = { "dispatcher": self, "bots": bots, - "bot": bots[-1], - **kwargs, **self.workflow_data, + **kwargs, } - await self.emit_startup(**workflow_data) + await self.emit_startup(bot=bots[-1], **workflow_data) loggers.dispatcher.info("Start polling") try: tasks: List[asyncio.Task[Any]] = [ @@ -515,7 +514,7 @@ class Dispatcher(Router): polling_timeout=polling_timeout, backoff_config=backoff_config, allowed_updates=allowed_updates, - **kwargs, + **workflow_data, ) ) for bot in bots @@ -534,7 +533,7 @@ class Dispatcher(Router): finally: loggers.dispatcher.info("Polling stopped") try: - await self.emit_shutdown(**workflow_data) + await self.emit_shutdown(bot=bots[-1], **workflow_data) finally: if close_bot_session: await asyncio.gather(*(bot.session.close() for bot in bots)) diff --git a/aiogram/webhook/aiohttp_server.py b/aiogram/webhook/aiohttp_server.py index 953f90fe..0bd5b609 100644 --- a/aiogram/webhook/aiohttp_server.py +++ b/aiogram/webhook/aiohttp_server.py @@ -28,8 +28,8 @@ def setup_application(app: Application, dispatcher: Dispatcher, /, **kwargs: Any workflow_data = { "app": app, "dispatcher": dispatcher, - **kwargs, **dispatcher.workflow_data, + **kwargs, } async def on_startup(*a: Any, **kw: Any) -> None: # pragma: no cover