summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2024-03-08 04:33:46 -0500
committerGitHub <noreply@github.com>2024-03-08 09:33:46 +0000
commit696cc9e802f63ba8657856d85f6982f49de14f27 (patch)
treedd704c2abb3865fd788968c97de147044ead6e8d /synapse
parentFix joining remote rooms when a `on_new_event` callback is registered (#16973) (diff)
downloadsynapse-696cc9e802f63ba8657856d85f6982f49de14f27.tar.xz
Stabilize support for Retry-After header (MSC4014) (#16947)
Diffstat (limited to 'synapse')
-rw-r--r--synapse/api/errors.py5
-rw-r--r--synapse/config/experimental.py9
2 files changed, 2 insertions, 12 deletions
diff --git a/synapse/api/errors.py b/synapse/api/errors.py
index b44088f9b3..dd4a1ae706 100644
--- a/synapse/api/errors.py
+++ b/synapse/api/errors.py
@@ -517,8 +517,6 @@ class InvalidCaptchaError(SynapseError):
 class LimitExceededError(SynapseError):
     """A client has sent too many requests and is being throttled."""
 
-    include_retry_after_header = False
-
     def __init__(
         self,
         limiter_name: str,
@@ -526,9 +524,10 @@ class LimitExceededError(SynapseError):
         retry_after_ms: Optional[int] = None,
         errcode: str = Codes.LIMIT_EXCEEDED,
     ):
+        # Use HTTP header Retry-After to enable library-assisted retry handling.
         headers = (
             {"Retry-After": str(math.ceil(retry_after_ms / 1000))}
-            if self.include_retry_after_header and retry_after_ms is not None
+            if retry_after_ms is not None
             else None
         )
         super().__init__(code, "Too Many Requests", errcode, headers=headers)
diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py
index d43d9da956..0bd3befdc2 100644
--- a/synapse/config/experimental.py
+++ b/synapse/config/experimental.py
@@ -25,7 +25,6 @@ from typing import TYPE_CHECKING, Any, Optional
 import attr
 import attr.validators
 
-from synapse.api.errors import LimitExceededError
 from synapse.api.room_versions import KNOWN_ROOM_VERSIONS, RoomVersions
 from synapse.config import ConfigError
 from synapse.config._base import Config, RootConfig
@@ -415,14 +414,6 @@ class ExperimentalConfig(Config):
             "msc4010_push_rules_account_data", False
         )
 
-        # MSC4041: Use HTTP header Retry-After to enable library-assisted retry handling
-        #
-        # This is a bit hacky, but the most reasonable way to *alway* include the
-        # headers.
-        LimitExceededError.include_retry_after_header = experimental.get(
-            "msc4041_enabled", False
-        )
-
         self.msc4028_push_encrypted_events = experimental.get(
             "msc4028_push_encrypted_events", False
         )