diff options
author | Richard van der Hoff <richard@matrix.org> | 2016-12-09 18:31:01 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2016-12-09 18:31:01 +0000 |
commit | efa4ccfaee16e4f9c8145acb96249979933c8fc9 (patch) | |
tree | 38d9605293bd0dad40637b64d2b66a9e2df76e0c /synapse | |
parent | Merge pull request #1672 from williamleuschner/develop (diff) | |
download | synapse-efa4ccfaee16e4f9c8145acb96249979933c8fc9.tar.xz |
E2E key query: handle federation fails
Don't fail the whole request if we can't connect to a particular server.
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/handlers/e2e_keys.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/synapse/handlers/e2e_keys.py b/synapse/handlers/e2e_keys.py index fd11935b40..7dccc9c51d 100644 --- a/synapse/handlers/e2e_keys.py +++ b/synapse/handlers/e2e_keys.py @@ -16,6 +16,7 @@ import ujson as json import logging +import twisted.internet.error from canonicaljson import encode_canonical_json from twisted.internet import defer @@ -111,6 +112,11 @@ class E2eKeysHandler(object): failures[destination] = { "status": 503, "message": "Not ready for retry", } + except Exception as e: + # include ConnectionRefused and other errors + failures[destination] = { + "status": 503, "message": e.message + } yield preserve_context_over_deferred(defer.gatherResults([ preserve_fn(do_remote_query)(destination) @@ -222,6 +228,11 @@ class E2eKeysHandler(object): failures[destination] = { "status": 503, "message": "Not ready for retry", } + except Exception as e: + # include ConnectionRefused and other errors + failures[destination] = { + "status": 503, "message": e.message + } yield preserve_context_over_deferred(defer.gatherResults([ preserve_fn(claim_client_keys)(destination) |