summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2019-08-01 13:47:31 +0100
committerErik Johnston <erik@matrix.org>2019-08-01 13:47:31 +0100
commita8f40a8302fb1b9c95287d87a56440bb9b201435 (patch)
treeb34f5ac6bbc9162c8ceb5715ed2f02d8cdec2787
parentMerge pull request #5805 from matrix-org/erikj/validate_state (diff)
downloadsynapse-a8f40a8302fb1b9c95287d87a56440bb9b201435.tar.xz
Return 502 not 500 when failing to reach any remote server.
-rw-r--r--synapse/federation/federation_client.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/synapse/federation/federation_client.py b/synapse/federation/federation_client.py
index 6e03ce21af..bec3080895 100644
--- a/synapse/federation/federation_client.py
+++ b/synapse/federation/federation_client.py
@@ -511,9 +511,8 @@ class FederationClient(FederationBase):
             The [Deferred] result of callback, if it succeeds
 
         Raises:
-            SynapseError if the chosen remote server returns a 300/400 code.
-
-            RuntimeError if no servers were reachable.
+            SynapseError if the chosen remote server returns a 300/400 code, or
+            no servers were reachable.
         """
         for destination in destinations:
             if destination == self.server_name:
@@ -538,7 +537,7 @@ class FederationClient(FederationBase):
             except Exception:
                 logger.warn("Failed to %s via %s", description, destination, exc_info=1)
 
-        raise RuntimeError("Failed to %s via any server" % (description,))
+        raise SynapseError(502, "Failed to %s via any server" % (description,))
 
     def make_membership_event(
         self, destinations, room_id, user_id, membership, content, params