Space rooms silently dropped over federation due to outdated via values. #1467
Labels
A-Client-Server
Issues affecting the CS API
wart
A point where the protocol is inconsistent or inelegant
In the current spaces spec, the room alias of space rooms as well as suggested via servers are stored in the metadata. In order to join or fetch information of a room over federation, the user's homeserver which is not participating in the room must find another homeserver which is already participating in the room. This is done using the via attribute, which stores a list of homeservers that are likely to be participating in the room.
If these via servers are out of date, when the client calls /hierarchy to get information about the space rooms, the homeserver will be unable to fetch information about those rooms, and silently drop them from the response. This means that the user sees fewer rooms than intended in the space, with no sign that anything is wrong, and cannot realize the problem without getting information through side channels.
The problem is that the via servers are extremely likely to end up out of date, because there is no way to update them in current implementations of matrix clients. This has led to degraded experience of current users over federation who want to join spaces.
I think a mitigation MUST be specced and implemented, or else users over federation will face and increasingly broken spaces experience as time goes on.
A possible mitigation could include the changes:
The text was updated successfully, but these errors were encountered: