From 9876cd6e77e102f860c313995b8b7c38e9297853 Mon Sep 17 00:00:00 2001 From: habcawa <212562656+habcawa@users.noreply.github.com> Date: Tue, 20 May 2025 16:19:09 +0200 Subject: [PATCH] fix(MtProtoSender): improve error handling on BadMsgNotification for seq_no too low/too high --- telethon/network/mtprotosender.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/telethon/network/mtprotosender.py b/telethon/network/mtprotosender.py index f1ebcac6..f813af63 100644 --- a/telethon/network/mtprotosender.py +++ b/telethon/network/mtprotosender.py @@ -824,12 +824,11 @@ class MTProtoSender: correct_msg_id=message.msg_id) self._log.info('System clock is wrong, set time offset to %ds', to) elif bad_msg.error_code == 32: - # msg_seqno too low, so just pump it up by some "large" amount - # TODO A better fix would be to start with a new fresh session ID - self._state._sequence += 64 + # msg_seqno too low + self._state.reset(keep_key=True) elif bad_msg.error_code == 33: - # msg_seqno too high never seems to happen but just in case - self._state._sequence -= 16 + # msg_seqno too high + self._state.reset(keep_key=True) else: for state in states: state.future.set_exception(