diff --git a/changelog.d/16220.misc b/changelog.d/16220.misc
new file mode 100644
index 0000000000000000000000000000000000000000..329e9f76f6fd1aee1f16761064d1199a5aa89a9d
--- /dev/null
+++ b/changelog.d/16220.misc
@@ -0,0 +1 @@
+Fix typo where we ended up with multiple `WorkerLocksHandler`.
diff --git a/synapse/server.py b/synapse/server.py
index 7cdd3ea3c2e1d46cf826bf5cd25d4d7167eec6f9..8f5e4fc140da5b89db1899edb616940f7d827d19 100644
--- a/synapse/server.py
+++ b/synapse/server.py
@@ -914,6 +914,7 @@ class HomeServer(metaclass=abc.ABCMeta):
         """Usage metrics shared between phone home stats and the prometheus exporter."""
         return CommonUsageMetricsManager(self)
 
+    @cache_in_self
     def get_worker_locks_handler(self) -> WorkerLocksHandler:
         return WorkerLocksHandler(self)