diff --git a/changelog.d/9144.misc b/changelog.d/9144.misc
new file mode 100644
index 0000000000000000000000000000000000000000..38a506b170ed6ff349a60766d3b88b173ab1b43a
--- /dev/null
+++ b/changelog.d/9144.misc
@@ -0,0 +1 @@
+Enforce that replication HTTP clients are called with keyword arguments only.
diff --git a/synapse/replication/http/_base.py b/synapse/replication/http/_base.py
index 1492ac922c2b81707f3e55bd37f9d55881bf28bb..288727a566054c80b026d90ebe34e0ee8f3ae5e0 100644
--- a/synapse/replication/http/_base.py
+++ b/synapse/replication/http/_base.py
@@ -177,7 +177,7 @@ class ReplicationEndpoint(metaclass=abc.ABCMeta):
 
         @trace(opname="outgoing_replication_request")
         @outgoing_gauge.track_inprogress()
-        async def send_request(instance_name="master", **kwargs):
+        async def send_request(*, instance_name="master", **kwargs):
             if instance_name == local_instance_name:
                 raise Exception("Trying to send HTTP request to self")
             if instance_name == "master":