diff --git a/packages/overlays/matrix-synapse/patches/0027-Don-t-move-invited-users-to-new-room-when-shutting-d.patch b/packages/overlays/matrix-synapse/patches/0027-Don-t-move-invited-users-to-new-room-when-shutting-d.patch
deleted file mode 100644
index bbec2e2..0000000
--- a/packages/overlays/matrix-synapse/patches/0027-Don-t-move-invited-users-to-new-room-when-shutting-d.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 24e849e483820762fa2d231ad702e6aeaa23829c Mon Sep 17 00:00:00 2001
-From: Shay <hillerys@element.io>
-Date: Fri, 23 May 2025 01:59:40 -0700
-Subject: [PATCH 27/34] Don't move invited users to new room when shutting down
- room (#18471)
-
-This is confusing to users who received unwanted invites.
----
- changelog.d/18471.misc | 1 +
- synapse/handlers/room.py | 23 ++++++++++----------
- tests/rest/admin/test_room.py | 41 +++++++++++++++++++++++++++++++++++
- 3 files changed, 54 insertions(+), 11 deletions(-)
- create mode 100644 changelog.d/18471.misc
-
-diff --git a/changelog.d/18471.misc b/changelog.d/18471.misc
-new file mode 100644
-index 0000000000..b36712bea3
---- /dev/null
-+++ b/changelog.d/18471.misc
-@@ -0,0 +1 @@
-+Don't move invited users to new room when shutting down room.
-\ No newline at end of file
-diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
-index 386375d64b..763f99e028 100644
---- a/synapse/handlers/room.py
-+++ b/synapse/handlers/room.py
-@@ -1806,7 +1806,7 @@ class RoomShutdownHandler:
- ] = None,
- ) -> Optional[ShutdownRoomResponse]:
- """
-- Shuts down a room. Moves all local users and room aliases automatically
-+ Shuts down a room. Moves all joined local users and room aliases automatically
- to a new room if `new_room_user_id` is set. Otherwise local users only
- leave the room without any information.
-
-@@ -1949,16 +1949,17 @@ class RoomShutdownHandler:
-
- # Join users to new room
- if new_room_user_id:
-- assert new_room_id is not None
-- await self.room_member_handler.update_membership(
-- requester=target_requester,
-- target=target_requester.user,
-- room_id=new_room_id,
-- action=Membership.JOIN,
-- content={},
-- ratelimit=False,
-- require_consent=False,
-- )
-+ if membership == Membership.JOIN:
-+ assert new_room_id is not None
-+ await self.room_member_handler.update_membership(
-+ requester=target_requester,
-+ target=target_requester.user,
-+ room_id=new_room_id,
-+ action=Membership.JOIN,
-+ content={},
-+ ratelimit=False,
-+ require_consent=False,
-+ )
-
- result["kicked_users"].append(user_id)
- if update_result_fct:
-diff --git a/tests/rest/admin/test_room.py b/tests/rest/admin/test_room.py
-index 8d806082aa..e22dfcba1b 100644
---- a/tests/rest/admin/test_room.py
-+++ b/tests/rest/admin/test_room.py
-@@ -369,6 +369,47 @@ class DeleteRoomTestCase(unittest.HomeserverTestCase):
- self.assertEqual(200, channel.code, msg=channel.json_body)
- self._is_blocked(room_id)
-
-+ def test_invited_users_not_joined_to_new_room(self) -> None:
-+ """
-+ Test that when a new room id is provided, users who are only invited
-+ but have not joined original room are not moved to new room.
-+ """
-+ invitee = self.register_user("invitee", "pass")
-+
-+ self.helper.invite(
-+ self.room_id, self.other_user, invitee, tok=self.other_user_tok
-+ )
-+
-+ # verify that user is invited
-+ channel = self.make_request(
-+ "GET",
-+ f"/_matrix/client/v3/rooms/{self.room_id}/members?membership=invite",
-+ access_token=self.other_user_tok,
-+ )
-+ self.assertEqual(channel.code, 200)
-+ self.assertEqual(len(channel.json_body["chunk"]), 1)
-+ invite = channel.json_body["chunk"][0]
-+ self.assertEqual(invite["state_key"], invitee)
-+
-+ # shutdown room
-+ channel = self.make_request(
-+ "DELETE",
-+ self.url,
-+ {"new_room_user_id": self.admin_user},
-+ access_token=self.admin_user_tok,
-+ )
-+ self.assertEqual(200, channel.code, msg=channel.json_body)
-+ self.assertEqual(len(channel.json_body["kicked_users"]), 2)
-+
-+ # joined member is moved to new room but invited user is not
-+ users_in_room = self.get_success(
-+ self.store.get_users_in_room(channel.json_body["new_room_id"])
-+ )
-+ self.assertNotIn(invitee, users_in_room)
-+ self.assertIn(self.other_user, users_in_room)
-+ self._is_purged(self.room_id)
-+ self._has_no_members(self.room_id)
-+
- def test_shutdown_room_consent(self) -> None:
- """Test that we can shutdown rooms with local users who have not
- yet accepted the privacy policy. This used to fail when we tried to
---
-2.49.0
-
|