From e8987e801ecdbdc8ccfa6819db40b2baf25265f8 Mon Sep 17 00:00:00 2001 From: Olivier 'reivilibre Date: Wed, 23 Sep 2026 17:11:43 +0100 Subject: [PATCH] Remove the ability to send state events that are MSC4354 sticky (#20256) Part of: MSC4354 whose Experimental Feature tracking issue is https://github.com/element-hq/synapse/issues/19409 Remove the ability to create sticky (MSC4354) state events as a client This was removed from the MSC in https://github.com/matrix-org/matrix-spec-proposals/commit/d7d1546d3aa2323ec5d97a50c9f61ab92cd9e14b --------- Signed-off-by: Olivier 'reivilibre --- changelog.d/20256.removal | 1 + synapse/rest/client/room.py | 11 +---------- 2 files changed, 2 insertions(+), 10 deletions(-) create mode 100644 changelog.d/20256.removal diff --git a/changelog.d/20256.removal b/changelog.d/20256.removal new file mode 100644 index 0000000000..e258976f5f --- /dev/null +++ b/changelog.d/20256.removal @@ -0,0 +1 @@ +Remove the ability to send state events that are sticky, as this feature was removed from [MSC4354: Sticky Events](https://github.com/matrix-org/matrix-spec-proposals/pull/4354). \ No newline at end of file diff --git a/synapse/rest/client/room.py b/synapse/rest/client/room.py index 1b8774fde3..4ffb6a89b3 100644 --- a/synapse/rest/client/room.py +++ b/synapse/rest/client/room.py @@ -217,7 +217,6 @@ class RoomStateEventRestServlet(RestServlet): self.clock = hs.get_clock() self._event_serializer = hs.get_event_client_serializer() self._spam_checker_module_callbacks = hs.get_module_api_callbacks().spam_checker - self._msc4354_enabled = hs.config.experimental.msc4354_enabled def register(self, http_server: HttpServer) -> None: # /rooms/$roomid/state/$eventtype @@ -339,10 +338,6 @@ class RoomStateEventRestServlet(RestServlet): if requester.app_service_id: origin_server_ts = parse_integer(request, "ts") - sticky_duration_ms: int | None = None - if self._msc4354_enabled: - sticky_duration_ms = parse_integer(request, StickyEvent.QUERY_PARAM_NAME) - delay = _parse_request_for_delayed_event_delay(request) if delay is not None: delay_id = await self.delayed_events_handler.add( @@ -353,7 +348,7 @@ class RoomStateEventRestServlet(RestServlet): origin_server_ts=origin_server_ts, content=content, delay=delay, - sticky_duration_ms=sticky_duration_ms, + sticky_duration_ms=None, ) set_tag("delay_id", delay_id) @@ -381,10 +376,6 @@ class RoomStateEventRestServlet(RestServlet): "room_id": room_id, "sender": requester.user.to_string(), } - if sticky_duration_ms is not None: - event_dict[StickyEvent.EVENT_FIELD_NAME] = StickyEventField( - duration_ms=sticky_duration_ms - ) if state_key is not None: event_dict["state_key"] = state_key