diff --git a/src/client_server/membership.rs b/src/client_server/membership.rs index 222d204..46f4b9f 100644 --- a/src/client_server/membership.rs +++ b/src/client_server/membership.rs @@ -822,7 +822,10 @@ pub async fn invite_helper<'a>( serde_json::from_value::>(create_event.content.clone()) .expect("Raw::from_value always works.") .deserialize() - .map_err(|_| Error::bad_database("Invalid PowerLevels event in db.")) + .map_err(|e| { + warn!("Invalid create event: {}", e); + Error::bad_database("Invalid create event in db.") + }) }) .transpose()?; diff --git a/src/client_server/room.rs b/src/client_server/room.rs index 2541278..6981afc 100644 --- a/src/client_server/room.rs +++ b/src/client_server/room.rs @@ -423,6 +423,8 @@ pub async fn upgrade_room_route( // Create a replacement room let replacement_room = RoomId::new(db.globals.server_name()); + db.rooms + .get_or_create_shortroomid(&replacement_room, &db.globals)?; let mutex_state = Arc::clone( db.globals diff --git a/src/database/rooms.rs b/src/database/rooms.rs index eec9ec2..9e57c40 100644 --- a/src/database/rooms.rs +++ b/src/database/rooms.rs @@ -1780,7 +1780,10 @@ impl Rooms { serde_json::from_value::>(create_event.content.clone()) .expect("Raw::from_value always works.") .deserialize() - .map_err(|_| Error::bad_database("Invalid PowerLevels event in db.")) + .map_err(|e| { + warn!("Invalid create event: {}", e); + Error::bad_database("Invalid create event in db.") + }) }) .transpose()?; diff --git a/src/server_server.rs b/src/server_server.rs index 4cfe0a8..6b6ed28 100644 --- a/src/server_server.rs +++ b/src/server_server.rs @@ -1036,7 +1036,10 @@ fn handle_outlier_pdu<'a>( serde_json::from_value::>(create_event.content.clone()) .expect("Raw::from_value always works.") .deserialize() - .map_err(|_| "Invalid PowerLevels event in db.".to_owned())?; + .map_err(|e| { + warn!("Invalid create event: {}", e); + "Invalid create event in db.".to_owned() + })?; let room_version_id = &create_event_content.room_version; let room_version = RoomVersion::new(room_version_id).expect("room version is supported"); @@ -1323,7 +1326,10 @@ async fn upgrade_outlier_to_timeline_pdu( serde_json::from_value::>(create_event.content.clone()) .expect("Raw::from_value always works.") .deserialize() - .map_err(|_| "Invalid PowerLevels event in db.".to_owned())?; + .map_err(|e| { + warn!("Invalid create event: {}", e); + "Invalid create event in db.".to_owned() + })?; let room_version_id = &create_event_content.room_version; let room_version = RoomVersion::new(room_version_id).expect("room version is supported"); @@ -2210,7 +2216,10 @@ pub fn create_join_event_template_route( serde_json::from_value::>(create_event.content.clone()) .expect("Raw::from_value always works.") .deserialize() - .map_err(|_| Error::bad_database("Invalid PowerLevels event in db.")) + .map_err(|e| { + warn!("Invalid create event: {}", e); + Error::bad_database("Invalid create event in db.") + }) }) .transpose()?;