From 01e200e8ce99ecc46580e51d20008ed04174b638 Mon Sep 17 00:00:00 2001 From: KurimuzonAkuma Date: Wed, 4 Sep 2024 10:48:29 +0300 Subject: [PATCH] Restart client after receiving unknown constructor Signed-off-by: wulan17 --- pyrogram/session/session.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/pyrogram/session/session.py b/pyrogram/session/session.py index 40625cfd..c84a3cb4 100644 --- a/pyrogram/session/session.py +++ b/pyrogram/session/session.py @@ -190,14 +190,19 @@ class Session: await self.start() async def handle_packet(self, packet): - data = await self.loop.run_in_executor( - pyrogram.crypto_executor, - mtproto.unpack, - BytesIO(packet), - self.session_id, - self.auth_key, - self.auth_key_id - ) + try: + data = await self.loop.run_in_executor( + pyrogram.crypto_executor, + mtproto.unpack, + BytesIO(packet), + self.session_id, + self.auth_key, + self.auth_key_id + ) + except ValueError as e: + log.debug(e) + self.loop.create_task(self.restart()) + return messages = ( data.body.messages