diff --git a/telethon/client/updates.py b/telethon/client/updates.py index 86d5adee..e649b683 100644 --- a/telethon/client/updates.py +++ b/telethon/client/updates.py @@ -311,6 +311,7 @@ class UpdateMethods: if self._dispatching_updates_queue is None: task = self._loop.create_task(self._dispatch_update(*args)) self._updates_queue.add(task) + task.add_done_callback(lambda _: None if task.cancelled() else task.exception()) task.add_done_callback(lambda _: self._updates_queue.discard(task)) else: self._updates_queue.put_nowait(args) diff --git a/telethon/network/mtprotosender.py b/telethon/network/mtprotosender.py index aada87e5..78ee981c 100644 --- a/telethon/network/mtprotosender.py +++ b/telethon/network/mtprotosender.py @@ -315,6 +315,7 @@ class MTProtoSender: for state in self._pending_state.values(): if error and not state.future.done(): state.future.set_exception(error) + state.future.exception() else: state.future.cancel() @@ -331,6 +332,7 @@ class MTProtoSender: if self._disconnected and not self._disconnected.done(): if error: self._disconnected.set_exception(error) + self._disconnected.exception() else: self._disconnected.set_result(None)