diff options
author | Erik Johnston <erik@matrix.org> | 2019-07-30 13:26:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-30 13:26:12 +0100 |
commit | 7a48d0bab89219bda2e51818857b517263944743 (patch) | |
tree | d2183f165bee51ca61f5a1298efd25b585de0c5d | |
parent | Merge pull request #5746 from matrix-org/erikj/test_bg_update_currnet_state (diff) | |
parent | Newsfile (diff) | |
download | synapse-7a48d0bab89219bda2e51818857b517263944743.tar.xz |
Merge pull request #5789 from matrix-org/erikj/fix_error_handling_keys
Fix error handling when fetching remote device keys
-rw-r--r-- | changelog.d/5789.bugfix | 1 | ||||
-rw-r--r-- | synapse/handlers/e2e_keys.py | 7 |
2 files changed, 4 insertions, 4 deletions
diff --git a/changelog.d/5789.bugfix b/changelog.d/5789.bugfix new file mode 100644 index 0000000000..d6f4e590ae --- /dev/null +++ b/changelog.d/5789.bugfix @@ -0,0 +1 @@ +Fix UISIs during homeserver outage. diff --git a/synapse/handlers/e2e_keys.py b/synapse/handlers/e2e_keys.py index 366a0bc68b..1f90b0d278 100644 --- a/synapse/handlers/e2e_keys.py +++ b/synapse/handlers/e2e_keys.py @@ -25,6 +25,7 @@ from twisted.internet import defer from synapse.api.errors import CodeMessageException, SynapseError from synapse.logging.context import make_deferred_yieldable, run_in_background from synapse.types import UserID, get_domain_from_id +from synapse.util import unwrapFirstError from synapse.util.retryutils import NotRetryingDestination logger = logging.getLogger(__name__) @@ -161,9 +162,7 @@ class E2eKeysHandler(object): results[user_id] = {device["device_id"]: device["keys"]} user_ids_updated.append(user_id) except Exception as e: - failures[destination] = failures.get(destination, []).append( - _exception_to_failure(e) - ) + failures[destination] = _exception_to_failure(e) if len(destination_query) == len(user_ids_updated): # We've updated all the users in the query and we do not need to @@ -194,7 +193,7 @@ class E2eKeysHandler(object): for destination in remote_queries_not_in_cache ], consumeErrors=True, - ) + ).addErrback(unwrapFirstError) ) return {"device_keys": results, "failures": failures} |