fix: don't panic on missing events in state

This commit is contained in:
Timo Kösters 2022-10-11 17:59:49 +02:00
parent 68227c06c3
commit d1e5acd7b3
No known key found for this signature in database
GPG key ID: 24DA7517711A2BA4

View file

@ -55,7 +55,7 @@ use std::{
time::{Duration, Instant, SystemTime},
};
use tracing::{info, warn};
use tracing::{error, info, warn};
/// Wraps either an literal IP address plus port, or a hostname plus complement
/// (colon-plus-port if it was specified).
@ -1149,16 +1149,18 @@ pub async fn get_room_state_route(
Ok(get_room_state::v1::Response {
auth_chain: auth_chain_ids
.map(|id| {
services()
.filter_map(|id| {
match services()
.rooms
.timeline
.get_pdu_json(&id)
.map(|maybe_json| {
PduEvent::convert_to_outgoing_federation_event(maybe_json.unwrap())
})
.get_pdu_json(&id).ok()? {
Some(json) => Some(PduEvent::convert_to_outgoing_federation_event(json)),
None => {
error!("Could not find event json for {id} in db.");
None
}
}
})
.filter_map(|r| r.ok())
.collect(),
pdus,
})