diff --git a/python/xoscar/backends/core.py b/python/xoscar/backends/core.py index 4c62526f..5b79fc58 100644 --- a/python/xoscar/backends/core.py +++ b/python/xoscar/backends/core.py @@ -85,7 +85,8 @@ async def _listen(self, client: Client): f"Remote server {client.dest_address} closed" ) from None future = self._client_to_message_futures[client].pop(message.message_id) - future.set_result(message) + if not future.done(): + future.set_result(message) except DeserializeMessageFailed as e: message_id = e.message_id future = self._client_to_message_futures[client].pop(message_id)