diff --git a/src/api/server_server.rs b/src/api/server_server.rs
index 422da477b1348483cbb606860a0e493a1ef38a0a..3a6da4fa8b5714c74aeca56a37c8ce6bb7dcd6ff 100644
--- a/src/api/server_server.rs
+++ b/src/api/server_server.rs
@@ -472,10 +472,11 @@ async fn find_actual_destination(destination: &'_ ServerName) -> (FedDest, FedDe
 }
 
 async fn query_srv_record(hostname: &'_ str) -> Option<FedDest> {
+    let hostname = hostname.trim_end_matches('.');
     if let Ok(Some(host_port)) = services()
         .globals
         .dns_resolver()
-        .srv_lookup(format!("_matrix._tcp.{hostname}"))
+        .srv_lookup(format!("_matrix._tcp.{hostname}."))
         .await
         .map(|srv| {
             srv.iter().next().map(|result| {