diff --git a/aiogram/dispatcher/event/telegram.py b/aiogram/dispatcher/event/telegram.py index fd9ba63a..2d6d5882 100644 --- a/aiogram/dispatcher/event/telegram.py +++ b/aiogram/dispatcher/event/telegram.py @@ -88,7 +88,7 @@ class TelegramEventObserver: """ registry: List[Type[BaseFilter]] = [] - for router in reversed(tuple(self.router.chain)): + for router in reversed(tuple(self.router.chain_head)): observer = router.observers[self.event_name] for filter_ in observer.filters: diff --git a/tests/test_dispatcher/test_event/test_telegram.py b/tests/test_dispatcher/test_event/test_telegram.py index 4d0e11e1..876b366c 100644 --- a/tests/test_dispatcher/test_event/test_telegram.py +++ b/tests/test_dispatcher/test_event/test_telegram.py @@ -99,6 +99,8 @@ class TestTelegramEventObserver: assert MyFilter2 in filters_chain3 assert MyFilter3 in filters_chain3 + assert MyFilter3 not in filters_chain1 + async def test_resolve_filters_data_from_parent_router(self): class FilterSet(BaseFilter): set_filter: bool