From be59c36ed3d44cbf757a4a79878b7359be19c291 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sun, 12 Mar 2023 17:43:36 +0100 Subject: [PATCH] Handle errors at connection level Closes #4042. --- telethon/network/mtprotosender.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/telethon/network/mtprotosender.py b/telethon/network/mtprotosender.py index 90ae665d..c1a839d9 100644 --- a/telethon/network/mtprotosender.py +++ b/telethon/network/mtprotosender.py @@ -507,6 +507,18 @@ class MTProtoSender: self._log.info('Connection closed while receiving data') self._start_reconnect(e) return + except InvalidBufferError as e: + if e.code == 429: + self._log.warning('Server indicated flood error at transport level: %s', e) + await self._disconnect(error=e) + else: + self._log.exception('Server sent invalid buffer') + self._start_reconnect(e) + return + except Exception as e: + self._log.exception('Unhandled error while receiving data') + self._start_reconnect(e) + return try: message = self._state.decrypt_message_data(body) @@ -532,7 +544,7 @@ class MTProtoSender: self._start_reconnect(e) return except Exception as e: - self._log.exception('Unhandled error while receiving data') + self._log.exception('Unhandled error while decrypting data') self._start_reconnect(e) return