diff --git a/src/api/server_server.rs b/src/api/server_server.rs index 0f20a858..cdcdf3ba 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -717,7 +717,10 @@ pub(crate) fn parse_incoming_pdu( let room_version_id = services() .rooms .state - .get_create_content::(&room_id)?; + .get_create_content::(&room_id) + .inspect_err(|_| { + debug!(%room_id, "This server is not in the room"); + })?; let Ok((event_id, value)) = gen_event_id_canonical_json(pdu, &room_version_id) @@ -746,31 +749,7 @@ pub(crate) async fn send_transaction_message_route( let pub_key_map = RwLock::new(BTreeMap::new()); for pdu in &body.pdus { - let value: CanonicalJsonObject = serde_json::from_str(pdu.get()) - .map_err(|error| { - warn!(%error, object = ?pdu, "Error parsing incoming event"); - Error::BadServerResponse("Invalid PDU in server response") - })?; - let room_id: OwnedRoomId = value - .get("room_id") - .and_then(|id| RoomId::parse(id.as_str()?).ok()) - .ok_or(Error::BadRequest( - ErrorKind::InvalidParam, - "Invalid room id in pdu", - ))?; - - if services() - .rooms - .state - .get_create_content::(&room_id) - .is_err() - { - debug!(%room_id, "This server is not in the room"); - continue; - } - - let r = parse_incoming_pdu(pdu); - let (event_id, value, room_id) = match r { + let (event_id, value, room_id) = match parse_incoming_pdu(pdu) { Ok(t) => t, Err(error) => { warn!(%error, object = ?pdu, "Error parsing incoming event");