diff --git a/matrix_sdk_base/src/client.rs b/matrix_sdk_base/src/client.rs index 4a454878..f48c764a 100644 --- a/matrix_sdk_base/src/client.rs +++ b/matrix_sdk_base/src/client.rs @@ -633,6 +633,13 @@ impl BaseClient { &self, response: &mut api::sync::sync_events::Response, ) -> Result<()> { + // The server might respond multiple times with the same sync token, in + // that case we already received this response and there's nothing to + // do. + if self.sync_token.read().await.as_ref() == Some(&response.next_batch) { + return Ok(()); + } + *self.sync_token.write().await = Some(response.next_batch.clone()); #[cfg(feature = "encryption")]