diff --git a/src/service/pusher/mod.rs b/src/service/pusher/mod.rs
index 015e36986583fc8b1bd266a6bf03c01c8409fc3d..d3053ca7603a4fdc89c83fd503b4a48ba9bc696c 100644
--- a/src/service/pusher/mod.rs
+++ b/src/service/pusher/mod.rs
@@ -200,7 +200,13 @@ pub fn get_actions<'a>(
 
         let ctx = PushConditionRoomCtx {
             room_id: room_id.to_owned(),
-            member_count: 10_u32.into(), // TODO: get member count efficiently
+            member_count: UInt::from(
+                services()
+                    .rooms
+                    .state_cache
+                    .room_joined_count(room_id)?
+                    .unwrap_or(1) as u32,
+            ),
             user_id: user.to_owned(),
             user_display_name: services()
                 .users