Skip to content

Remove obsolete and experimental /sync/e2ee endpoint. #18583

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

reivilibre
Copy link
Contributor

Introduced in: #17167

  1. Remove obsolete /sync/e2ee experimental endpoint
    The endpoint was part of experiments for MSC3575 but does not feature in
    that MSC.

The endpoint was part of experiments for MSC3575 but does not feature in
that MSC.
Signed-off-by: Olivier 'reivilibre <[email protected]>
@reivilibre
Copy link
Contributor Author

cc @MadLittleMods please check if this removal matches your understanding for the future

@@ -630,177 +628,6 @@ async def encode_room(
return result


class SlidingSyncE2eeRestServlet(RestServlet):
Copy link
Contributor

@MadLittleMods MadLittleMods Jun 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

> cc @MadLittleMods please check if this removal matches your understanding for the future

I think removing /sync/e2ee is fine. Here is what I wrote about it before:

Really feels like this /sync/e2ee endpoint should just be a sliding sync loop with only the e2ee extension.

But I assume we're making /sync/e2ee in Synapse right now to lighten up the pressure for the Sliding Sync proxy in the mean-time.

-- @MadLittleMods, Comment on the Native Sliding Sync simplification document

Re-stated:

My hunch is that this endpoint is probably more of a stepping stone to relieve pressure on the Sliding Sync proxy now and we will end up handling E2EE stuff in main Sliding Sync endpoint itself with the extensions.

-- @MadLittleMods, #17167 (comment)

But we weren't even able to use it to relieve pressure back then because an interaction problem with /sync v2 (which the Sliding Sync proxy used) and To-Device messages, see #17167 (comment)

Additionally, the endpoint may be sufficiently heavyweight and just as slow (I don't think we really investigated this point after the fact as I'm not sure this endpoint was even used):

We're doing all the same work for this new endpoint as the old sync v2 so the performance is bound to be about the same. Which also means To-Device events will probably get backed up by other events above the same. I did add a filter to only work with membership events which might help.

-- @MadLittleMods, #17167 (comment)

Are clients using /sync/e2ee?

I assume you've checked if the Element X clients are using this at all and have asked whether it was useful? Those would be the only clients using this endpoint.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not see any usage on matrix.org, I also searched in Ruma (and in Conduwuit in case they implement the same), without finding this endpoint implemented.

I haven't asked them if it would be useful, but I guess they are getting by fine without it.

@reivilibre reivilibre marked this pull request as ready for review July 3, 2025 09:39
@reivilibre reivilibre requested a review from a team as a code owner July 3, 2025 09:39
Copy link
Member

@sandhose sandhose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR claims to remove an unused endpoint and indeed does that by removing lots of code. I also verified that there was no usage of this endpoint on matrix.org.

There are just some left over parametrisation in tests left that could be removed

@@ -32,11 +32,6 @@
("sync_endpoint", "experimental_features"),
[
("/sync", {}),
(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not need to be parametrised anymore

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All those tests don't need to be parametrised anymore

@reivilibre reivilibre requested a review from sandhose July 18, 2025 11:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants