mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-13 12:16:54 +00:00
fix(stateres): Don't panic when the create event goes missing
I have no idea how this can even happen and frankly I'm scared to look however that's a problem for another time. Panicking causes entire transactions to explode, this just makes one event explode.
This commit is contained in:
1 file changed
+13
@@ -809,6 +809,19 @@ where
|
||||
.await;
|
||||
trace!(map = ?auth_state.keys().collect::<Vec<_>>(), event_id = event.event_id().as_str(), "auth state for event");
|
||||
|
||||
// If this is not a create event, we must have the room create event in
|
||||
// the auth state by now.
|
||||
if *event.event_type() != StateEventType::RoomCreate.into()
|
||||
|| event.state_key().is_none_or(|k| !k.is_empty())
|
||||
{
|
||||
if !auth_state.contains_key(&StateEventType::RoomCreate.with_state_key("")) {
|
||||
return Err(Error::NotFound(format!(
|
||||
"m.room.create did not appear in the auth state for {}",
|
||||
event.event_id()
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
||||
debug!(event_id = event.event_id().as_str(), "Running auth checks");
|
||||
|
||||
// The key for this is (eventType + a state_key of the signed token not
|
||||
|
||||
Reference in new issue
Block a user