From b7e0d10b5abaac96b844b214db4058aa5b5580c0 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Thu, 14 Apr 2022 19:44:19 +0200 Subject: [PATCH] fix: Wait for keys in pusher --- lib/src/client.dart | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/src/client.dart b/lib/src/client.dart index 429fb083..a5df3035 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -1088,11 +1088,13 @@ class Client extends MatrixApi { final encryption = this.encryption; if (event.type == EventTypes.Encrypted && encryption != null) { - event = await encryption.decryptRoomEvent(roomId, event); - if (event.type == EventTypes.Encrypted && _currentSync != null) { - await _currentSync; - event = await encryption.decryptRoomEvent(roomId, event); + var decrypted = await encryption.decryptRoomEvent(roomId, event); + if (decrypted.messageType == MessageTypes.BadEncrypted && + prevBatch != null) { + await oneShotSync(); + decrypted = await encryption.decryptRoomEvent(roomId, event); } + event = decrypted; } if (storeInDatabase) {