From 5e892671a74251109bf9cf4a78bebed9d8085979 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 16 May 2024 15:04:14 +0100 Subject: Fix bug where push rules would be empty in `/sync` (#17142) Fixes #16987 Some old accounts seem to have an entry in global account data table for push rules, which we should ignore --- synapse/handlers/sync.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'synapse/handlers') diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 53fe2a6a53..659499af75 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -1971,23 +1971,19 @@ class SyncHandler: ) if push_rules_changed: - global_account_data = { - AccountDataTypes.PUSH_RULES: await self._push_rules_handler.push_rules_for_user( - sync_config.user - ), - **global_account_data, - } + global_account_data = dict(global_account_data) + global_account_data[AccountDataTypes.PUSH_RULES] = ( + await self._push_rules_handler.push_rules_for_user(sync_config.user) + ) else: all_global_account_data = await self.store.get_global_account_data_for_user( user_id ) - global_account_data = { - AccountDataTypes.PUSH_RULES: await self._push_rules_handler.push_rules_for_user( - sync_config.user - ), - **all_global_account_data, - } + global_account_data = dict(all_global_account_data) + global_account_data[AccountDataTypes.PUSH_RULES] = ( + await self._push_rules_handler.push_rules_for_user(sync_config.user) + ) account_data_for_user = ( await sync_config.filter_collection.filter_global_account_data( -- cgit 1.5.1