diff --git a/changelog.d/11930.bugfix b/changelog.d/11930.bugfix
new file mode 100644
index 0000000000..e0dfbf1a15
--- /dev/null
+++ b/changelog.d/11930.bugfix
@@ -0,0 +1 @@
+Fix a long-standing bug that some unknown endpoints would return HTML error pages instead of JSON `M_UNRECOGNIZED` errors.
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 24d55b0494..66e1a21331 100644
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -26,6 +26,7 @@ import synapse
import synapse.config.logger
from synapse import events
from synapse.api.urls import (
+ CLIENT_API_PREFIX,
FEDERATION_PREFIX,
LEGACY_MEDIA_PREFIX,
MEDIA_R0_PREFIX,
@@ -195,13 +196,7 @@ class SynapseHomeServer(HomeServer):
resources.update(
{
- "/_matrix/client/api/v1": client_resource,
- "/_matrix/client/r0": client_resource,
- "/_matrix/client/v1": client_resource,
- "/_matrix/client/v3": client_resource,
- "/_matrix/client/unstable": client_resource,
- "/_matrix/client/v2_alpha": client_resource,
- "/_matrix/client/versions": client_resource,
+ CLIENT_API_PREFIX: client_resource,
"/.well-known": well_known_resource(self),
"/_synapse/admin": AdminRestResource(self),
**build_synapse_client_resource_tree(self),
|