Skip to content
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

The error responses from /leave do not conform to the spec. #13360

Open
matrixbot opened this issue Dec 20, 2023 · 0 comments
Open

The error responses from /leave do not conform to the spec. #13360

matrixbot opened this issue Dec 20, 2023 · 0 comments

Comments

@matrixbot
Copy link
Collaborator

matrixbot commented Dec 20, 2023

This issue has been migrated from #13360.


Description

The spec (https://spec.matrix.org/v1.3/client-server-api/#post_matrixclientv3roomsroomidleave) only allows two possible responses from a call to /leave. A 200 if the room was left, or 429 if the request was rate limited.

However, Synapse will return different responses depending on your, and your homeservers state in the room:

  1. Leaving a room that doesn't exist on the host returns "M_UNKNOWN" (Not a known room)
  2. Leaving a room on the host that I was never in (but the host is still joined to via another user) will result in a M_FORBIDDEN.
  3. Leaving a room that I was previously in will always no-op with a 200.

The spec is unfortunately doesn't define the behaviour for trying to leave a room when you were never part of it, but my feeling is that it should no-op in a similar fashion to reinviting users, or rejoining a room also no-op.

Steps to reproduce

For case 1:

  • Try to /leave a random roomID that you totally made up.
  • Observe the error

For case 2:

  • Create a room your homeserver
  • Try to /leave that room from another user who was never joined to it.
  • Observe the error

For case 3:

  • Create a room.
  • Leave the room.
  • Leave the room (and repeat as much as you like)
  • Observe a 200 response with an empty body.

Homeserver

half-shot.uk

Synapse Version

1.60.0

Installation Method

pip (from PyPI)

Platform

Probably not relevant

Relevant log output

Ditto

Anything else that would be useful to know?

No response

@matrixbot matrixbot changed the title Dummy issue The error responses from /leave do not conform to the spec. Dec 21, 2023
@matrixbot matrixbot reopened this Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant