diff options
author | Erik Johnston <erikj@element.io> | 2024-05-16 15:04:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-16 15:04:14 +0100 |
commit | 5e892671a74251109bf9cf4a78bebed9d8085979 (patch) | |
tree | 4ca66bf70f476f18fccf3c9cdd80a009977e0976 /synapse/handlers/sync.py | |
parent | Refactor Sync handler to be able to return different sync responses (`SyncVer... (diff) | |
download | synapse-5e892671a74251109bf9cf4a78bebed9d8085979.tar.xz |
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
Diffstat (limited to 'synapse/handlers/sync.py')
-rw-r--r-- | synapse/handlers/sync.py | 20 |
1 files changed, 8 insertions, 12 deletions
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( |