diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go
index d4aa1d08d..89de79f43 100644
--- a/clientapi/routing/routing.go
+++ b/clientapi/routing/routing.go
@@ -129,6 +129,10 @@ func Setup(
 		})).Methods(http.MethodGet, http.MethodOptions)
 	}
 
+	if !strings.HasPrefix(string(cfg.Matrix.ServerName), "http://") && !strings.HasPrefix(string(cfg.Matrix.ServerName), "https://") {
+		logrus.Warn("The well_known_server_name does not start with http:// or https:// does not start with 'http://' or 'https://'. Some clients may fail to connect.")
+	}
+
 	publicAPIMux.Handle("/versions",
 		httputil.MakeExternalAPI("versions", func(req *http.Request) util.JSONResponse {
 			return util.JSONResponse{
diff --git a/federationapi/routing/routing.go b/federationapi/routing/routing.go
index dc7a363e7..ac651a020 100644
--- a/federationapi/routing/routing.go
+++ b/federationapi/routing/routing.go
@@ -18,6 +18,7 @@ import (
 	"context"
 	"fmt"
 	"net/http"
+	"strings"
 	"sync"
 	"time"
 
@@ -123,6 +124,10 @@ func Setup(
 		).Methods(http.MethodGet, http.MethodOptions)
 	}
 
+	if !strings.HasPrefix(string(cfg.Matrix.ServerName), "http://") && !strings.HasPrefix(string(cfg.Matrix.ServerName), "https://") {
+		logrus.Warn("The well_known_server_name does not start with http:// or https:// does not start with 'http://' or 'https://'. Some clients may fail to connect.")
+	}
+
 	// Ignore the {keyID} argument as we only have a single server key so we always
 	// return that key.
 	// Even if we had more than one server key, we would probably still ignore the