Skip to content

Error processing ChatMemberRestricted #1014

Closed
@Danipulok

Description

@Danipulok

Checklist

  • I am sure the error is coming from aiogram code
  • I have searched in the issue tracker for similar bug reports, including closed ones

Operating system

Any (tested on Ubuntu+Windows)

Python version

python3.8-3.10 (tested on all three)

aiogram version

3.0.0a18 + 3.0.0b4 (tested on those two)

Expected behavior

Processing update and passing it to handlers (or at least not raising an error and exiting program)

Current behavior

Exiting the program with given traceback:
https://paste.aiogram.dev/ovabufiwar.properties

Steps to reproduce

Unfortunately, I don't know what happened to TG to send updates like this one.

Code example

import asyncio

from aiogram import Dispatcher, Bot, Router
from aiogram.types import CallbackQuery, Message


router = Router()


@router.message()
async def handler(msg: Message):
    pass


@router.callback_query()
async def handler(call: CallbackQuery):
    pass


dp = Dispatcher()
bot = Bot("BOT_TOKEN")
dp.include_router(router)


async def main() -> None:
    await dp.start_polling(bot)


if __name__ == "__main__":
    asyncio.run(main())

Logs

Traceback (most recent call last):
  File "D:\Code\wqe\main.py", line 58, in <module>
    loop.run_until_complete(main())
  File "C:\Program Files\Python38\lib\asyncio\base_events.py", line 616, in run_until_complete
    return future.result()
  File "D:\Code\wqe\main.py", line 47, in main
    await dp.start_polling(bot)
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 396, in start_polling
    await asyncio.gather(*coro_list)
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 266, in _polling
    async for update in self._listen_updates(
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 149, in _listen_updates
    updates = await bot(get_updates, **kwargs)
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\client\bot.py", line 336, in __call__
    return await self.session(self, method, timeout=request_timeout)
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\client\session\base.py", line 192, in __call__
    return await middleware(bot, method)
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\client\session\aiohttp.py", line 153, in make_request
    response = self.check_response(method=method, status_code=resp.status, content=raw_result)
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\client\session\base.py", line 84, in check_response
    response = method.build_response(json_data)
  File "D:\Code\wqe\.venv\lib\site-packages\aiogram\methods\base.py", line 82, in build_response
    return Response[self.__returning__](**data)  # type: ignore
  File "pydantic\main.py", line 342, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 26 validation errors for Response[List[aiogram.types.update.Update]]
result -> 0 -> my_chat_member -> new_chat_member -> status
  unexpected value; permitted: 'creator' (type=value_error.const; given=restricted; permitted=['creator'])
result -> 0 -> my_chat_member -> new_chat_member -> is_anonymous
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> status
  unexpected value; permitted: 'administrator' (type=value_error.const; given=restricted; permitted=['administrator'])
result -> 0 -> my_chat_member -> new_chat_member -> can_be_edited
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> is_anonymous
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_manage_chat
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_delete_messages
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_manage_voice_chats
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_restrict_members
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_promote_members
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_change_info
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_invite_users
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> status
  unexpected value; permitted: 'member' (type=value_error.const; given=restricted; permitted=['member'])
result -> 0 -> my_chat_member -> new_chat_member -> is_member
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_change_info
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_invite_users
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_pin_messages
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_send_messages
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_send_media_messages
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_send_polls
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_send_other_messages
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> can_add_web_page_previews
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> until_date
  field required (type=value_error.missing)
result -> 0 -> my_chat_member -> new_chat_member -> status
  unexpected value; permitted: 'left' (type=value_error.const; given=restricted; permitted=['left'])
result -> 0 -> my_chat_member -> new_chat_member -> status
  unexpected value; permitted: 'kicked' (type=value_error.const; given=restricted; permitted=['kicked'])
result -> 0 -> my_chat_member -> new_chat_member -> until_date
  field required (type=value_error.missing)

Process finished with exit code 1

Additional information

@evgfilim1 says the error in Telegram update ChatMemberRestricted and in my_chat_member there is only status=restricted field.

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.xIssue or PR for stable 3.x versionbugSomething is wrong with the frameworkneeds triageThis issue is not yet confirmed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions