diff --git a/changelog.d/6507.bugfix b/changelog.d/6507.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..7f95da52c93a6e7fb0eaacf491e0570ab6568992
--- /dev/null
+++ b/changelog.d/6507.bugfix
@@ -0,0 +1 @@
+Fix pusher worker failing because it can't retrieve retention policies for rooms.
diff --git a/synapse/app/pusher.py b/synapse/app/pusher.py
index 01a5ffc3639749996edc15692147124dd6fa9287..dd52a9fc2ddfc62b1140d0394145bd7eb2dae401 100644
--- a/synapse/app/pusher.py
+++ b/synapse/app/pusher.py
@@ -33,6 +33,7 @@ from synapse.replication.slave.storage.account_data import SlavedAccountDataStor
 from synapse.replication.slave.storage.events import SlavedEventStore
 from synapse.replication.slave.storage.pushers import SlavedPusherStore
 from synapse.replication.slave.storage.receipts import SlavedReceiptsStore
+from synapse.replication.slave.storage.room import RoomStore
 from synapse.replication.tcp.client import ReplicationClientHandler
 from synapse.server import HomeServer
 from synapse.storage import DataStore
@@ -45,7 +46,11 @@ logger = logging.getLogger("synapse.app.pusher")
 
 
 class PusherSlaveStore(
-    SlavedEventStore, SlavedPusherStore, SlavedReceiptsStore, SlavedAccountDataStore
+    SlavedEventStore,
+    SlavedPusherStore,
+    SlavedReceiptsStore,
+    SlavedAccountDataStore,
+    RoomStore,
 ):
     update_pusher_last_stream_ordering_and_success = __func__(
         DataStore.update_pusher_last_stream_ordering_and_success