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
)
|