Detect types.MissingStateError in CheckServerAllowedToSeeEvent (#2667)

This will hopefully stop some 500 errors on `/event` where there is no state-before known.
This commit is contained in:
Neil Alexander 2022-08-23 13:57:11 +01:00 committed by GitHub
parent 95a509757a
commit 14fea600bb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 4 deletions

View file

@ -254,8 +254,15 @@ func CheckServerAllowedToSeeEvent(
return false, err
}
default:
// Something else went wrong
return false, err
switch err.(type) {
case types.MissingStateError:
// If there's no state then we assume it's open visibility, as Synapse does:
// https://github.com/matrix-org/synapse/blob/aec87a0f9369a3015b2a53469f88d1de274e8b71/synapse/visibility.py#L654-L655
return true, nil
default:
// Something else went wrong
return false, err
}
}
return auth.IsServerAllowed(serverName, isServerInRoom, stateAtEvent), nil
}