diff --git a/crates/matrix-sdk/src/room/common.rs b/crates/matrix-sdk/src/room/common.rs index 5f6cbd2a5..6a71dbed2 100644 --- a/crates/matrix-sdk/src/room/common.rs +++ b/crates/matrix-sdk/src/room/common.rs @@ -205,16 +205,17 @@ impl Common { #[cfg(feature = "e2e-encryption")] if let Some(machine) = self.client.olm_machine().await { for event in http_response.chunk { - let decrypted_event = - if let AnySyncRoomEvent::MessageLike(AnySyncMessageLikeEvent::RoomEncrypted( - SyncMessageLikeEvent::Original(encrypted_event), - )) = event.deserialize_as::()? - { - machine.decrypt_room_event(&encrypted_event, room_id).await? - } else { - RoomEvent { event, encryption_info: None } - }; + if let Ok(AnySyncRoomEvent::MessageLike(AnySyncMessageLikeEvent::RoomEncrypted( + SyncMessageLikeEvent::Original(encrypted_event), + ))) = event.deserialize_as::() + { + if let Ok(event) = machine.decrypt_room_event(&encrypted_event, room_id).await { + response.chunk.push(event); + continue; + } + } + let decrypted_event = RoomEvent { event, encryption_info: None }; response.chunk.push(decrypted_event); } } else {