element-hq / synapse

Synapse: Matrix homeserver written in Python/Twisted.
https://element-hq.github.io/synapse
GNU Affero General Public License v3.0
1.34k stars 161 forks source link

Leave room with unknown room version #15785

Open matrixbot opened 9 months ago

matrixbot commented 9 months ago

This issue has been migrated from #15785.


Background

Synapse currently only supports leaving a room with a supported/known room version. This means you can get stuck in rooms with experimental room versions which are later dropped from Synapse.

If you try to leave a room with a room version that is no longer supported, the /leave request gives a 400 error with M_UNSUPPORTED_ROOM_VERSION

{
  "errcode": "M_UNSUPPORTED_ROOM_VERSION",
  "error": "Room !abc uses a room version org.matrix.mscxxx.test which is no longer supported"
}

The technical reason behind not being able to leave is that Synapse doesn't know how to resolve state in those rooms. Perhaps the spec needs some fallback mechanism for users wanting to escape or we can just make some assumptions and do our best effort at sending a leave.

What would you like to do?

Leave room with unknown/unsupported room version


Related issues:

richvdh commented 1 month ago

Given that, since https://github.com/matrix-org/synapse/pull/10644, such rooms no longer appear in the /sync response, how much does this actually matter? You have to force a client cache update to get rid of the room, but that doesn't seem too bad, since (presumably) if you were using an experimental room version you're a developer?