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