diff --git a/changelog.d/+local-join-forbidden.bugfix.md b/changelog.d/+local-join-forbidden.bugfix.md new file mode 100644 index 000000000..3e5b62d94 --- /dev/null +++ b/changelog.d/+local-join-forbidden.bugfix.md @@ -0,0 +1 @@ +Joining a local room the user is not allowed to join now returns `403 M_FORBIDDEN` instead of `500 M_UNKNOWN` when there are no other servers to try. diff --git a/src/service/rooms/membership/mod.rs b/src/service/rooms/membership/mod.rs index e7bd6037d..b5bfa10d2 100644 --- a/src/service/rooms/membership/mod.rs +++ b/src/service/rooms/membership/mod.rs @@ -221,6 +221,9 @@ impl Service { // We couldn't authorize a local join, probably because it's // restricted and we couldn't satisfy // the join rules ourselves. + if servers.is_empty() { + return Err(err); + } info!(?err, "Failed to join room locally, trying over federation instead"); }, }