summary refs log tree commit diff
path: root/synapse/handlers/e2e_keys.py
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2016-12-09 18:31:01 +0000
committerRichard van der Hoff <richard@matrix.org>2016-12-09 18:31:01 +0000
commitefa4ccfaee16e4f9c8145acb96249979933c8fc9 (patch)
tree38d9605293bd0dad40637b64d2b66a9e2df76e0c /synapse/handlers/e2e_keys.py
parentMerge pull request #1672 from williamleuschner/develop (diff)
downloadsynapse-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 '')
-rw-r--r--synapse/handlers/e2e_keys.py11
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)