From 9d453283ec18b4a45f3d4bbca04bd2132f124d32 Mon Sep 17 00:00:00 2001 From: Egor Date: Tue, 20 Jan 2026 00:28:16 +0300 Subject: [PATCH] Update global_error.py --- app/middlewares/global_error.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/middlewares/global_error.py b/app/middlewares/global_error.py index 5e1b4d53..127994b7 100644 --- a/app/middlewares/global_error.py +++ b/app/middlewares/global_error.py @@ -25,11 +25,15 @@ class GlobalErrorMiddleware(BaseMiddleware): async def _handle_telegram_error(self, event: TelegramObject, error: TelegramBadRequest): error_message = str(error).lower() - + if self._is_old_query_error(error_message): return await self._handle_old_query(event, error) elif self._is_message_not_modified_error(error_message): return await self._handle_message_not_modified(event, error) + elif self._is_topic_required_error(error_message): + # Канал с топиками — просто игнорируем + logger.debug(f"📋 [GlobalErrorMiddleware] Игнорируем ошибку топика: {error}") + return None elif self._is_bad_request_error(error_message): return await self._handle_bad_request(event, error) else: @@ -53,6 +57,14 @@ class GlobalErrorMiddleware(BaseMiddleware): "bot was blocked by the user", "user is deactivated" ]) + + def _is_topic_required_error(self, error_message: str) -> bool: + return any(phrase in error_message for phrase in [ + "topic must be specified", + "topic_closed", + "topic_deleted", + "forum_closed" + ]) async def _handle_old_query(self, event: TelegramObject, error: TelegramBadRequest): if isinstance(event, CallbackQuery):