From e3b874d33600f47237a4535ff6281f30afd40393 Mon Sep 17 00:00:00 2001 From: Ellie <6687206+wizzeh@users.noreply.github.com> Date: Sun, 15 Feb 2026 00:37:00 -0800 Subject: [PATCH] fix(sync): handle wildcard state keys in sliding sync required_state --- src/api/client/sync/v5.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/api/client/sync/v5.rs b/src/api/client/sync/v5.rs index 99a3bd44..c16ec285 100644 --- a/src/api/client/sync/v5.rs +++ b/src/api/client/sync/v5.rs @@ -685,8 +685,15 @@ async fn collect_required_state( required_state_request: &BTreeSet, ) -> Vec> { let mut required_state = Vec::new(); + let mut wildcard_types: BTreeSet<&StateEventType> = BTreeSet::new(); + for (event_type, state_key) in required_state_request { + if wildcard_types.contains(event_type) { + continue; + } + if state_key.as_str() == "*" { + wildcard_types.insert(event_type); if let Ok(keys) = services .rooms .state_accessor @@ -703,7 +710,6 @@ async fn collect_required_state( required_state.push(Event::into_format(event)); } } - break; } } else if let Ok(event) = services .rooms