From 25deca8f390156d424d6ebb6af689bf8e422e428 Mon Sep 17 00:00:00 2001 From: latand Date: Tue, 10 Feb 2026 22:10:11 +0200 Subject: [PATCH] Refine scene context error handling --- aiogram/fsm/scene.py | 10 +++++++--- tests/test_fsm/test_scene.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/aiogram/fsm/scene.py b/aiogram/fsm/scene.py index cd87b9ac..da0a52d2 100644 --- a/aiogram/fsm/scene.py +++ b/aiogram/fsm/scene.py @@ -251,10 +251,14 @@ class SceneHandlerWrapper: try: state: FSMContext = kwargs["state"] scenes: ScenesManager = kwargs["scenes"] - event_update: Update = kwargs["event_update"] - except KeyError: - msg = "Scene context is not available. Ensure FSM is enabled and pipeline is intact." + except KeyError as error: + missing_key = error.args[0] + msg = ( + f"Scene context key {missing_key!r} is not available. " + "Ensure FSM is enabled and pipeline is intact." + ) raise SceneException(msg) from None + event_update: Update = kwargs["event_update"] scene = self.scene( wizard=SceneWizard( scene_config=self.scene.__scene_config__, diff --git a/tests/test_fsm/test_scene.py b/tests/test_fsm/test_scene.py index 22406acd..3a9944b0 100644 --- a/tests/test_fsm/test_scene.py +++ b/tests/test_fsm/test_scene.py @@ -333,7 +333,7 @@ class TestSceneHandlerWrapper: with pytest.raises( SceneException, - match="Scene context is not available. Ensure FSM is enabled and pipeline is intact.", + match="Scene context key 'state' is not available. Ensure FSM is enabled and pipeline is intact.", ): await scene_handler_wrapper(event_update_mock, event_update=event_update_mock)