diff --git a/src/client_server/sync.rs b/src/client_server/sync.rs index 270a5f0663cd72588c4cd37cf960432218aa88de..7ce3b5bd57409da20639f3a0af96fdb4df872243 100644 --- a/src/client_server/sync.rs +++ b/src/client_server/sync.rs @@ -563,7 +563,8 @@ async fn sync_helper( } // Save the state after this sync so we can send the correct state diff next sync - db.rooms.associate_token_shortstatehash(&room_id, next_batch, current_shortstatehash)?; + db.rooms + .associate_token_shortstatehash(&room_id, next_batch, current_shortstatehash)?; let joined_room = sync_events::JoinedRoom { account_data: sync_events::RoomAccountData { diff --git a/src/database.rs b/src/database.rs index 193fcf25ca23016189a2388948ab5944508a96b5..a183f244c0816d9984a24c0fc7434082d535adda 100644 --- a/src/database.rs +++ b/src/database.rs @@ -710,6 +710,12 @@ pub async fn load_or_create(config: &Config) -> Result<Arc<TokioRwLock<Self>>> { .insert(&shortstatekey, &statekey)?; } + // Force E2EE device list updates so we can send them over federation + for user_id in db.users.iter().filter_map(|r| r.ok()) { + db.users + .mark_device_key_update(&user_id, &db.rooms, &db.globals)?; + } + db.globals.bump_database_version(10)?; println!("Migration: 9 -> 10 finished");