diff --git a/CHANGES/1520.bugfix.rst b/CHANGES/1520.bugfix.rst new file mode 100644 index 00000000..19e41b64 --- /dev/null +++ b/CHANGES/1520.bugfix.rst @@ -0,0 +1 @@ +Fixed event context resolving for the callback query that is coming from the business account diff --git a/aiogram/dispatcher/middlewares/user_context.py b/aiogram/dispatcher/middlewares/user_context.py index c257079f..138be0d1 100644 --- a/aiogram/dispatcher/middlewares/user_context.py +++ b/aiogram/dispatcher/middlewares/user_context.py @@ -80,14 +80,20 @@ class UserContextMiddleware(BaseMiddleware): if event.chosen_inline_result: return EventContext(user=event.chosen_inline_result.from_user) if event.callback_query: - if event.callback_query.message: + callback_query_message = event.callback_query.message + if callback_query_message: return EventContext( - chat=event.callback_query.message.chat, + chat=callback_query_message.chat, user=event.callback_query.from_user, thread_id=( - event.callback_query.message.message_thread_id - if not isinstance(event.callback_query.message, InaccessibleMessage) - and event.callback_query.message.is_topic_message + callback_query_message.message_thread_id + if not isinstance(callback_query_message, InaccessibleMessage) + and callback_query_message.is_topic_message + else None + ), + business_connection_id=( + callback_query_message.business_connection_id + if not isinstance(callback_query_message, InaccessibleMessage) else None ), )