diff --git a/src/api/client/sync/v3/joined.rs b/src/api/client/sync/v3/joined.rs index d5ffd0b2..c1a83c11 100644 --- a/src/api/client/sync/v3/joined.rs +++ b/src/api/client/sync/v3/joined.rs @@ -65,6 +65,7 @@ pub(super) async fn load_joined_room( and `join*` functions are used to perform steps in parallel which do not depend on each other. */ + let insert_lock = services.rooms.timeline.mutex_insert.lock(room_id).await; let ( account_data, ephemeral, @@ -82,6 +83,7 @@ pub(super) async fn load_joined_room( ) .boxed() .await?; + drop(insert_lock); if !timeline.is_empty() || !state_events.is_empty() { trace!(