-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Synapse does not respect event order of spec /createRoom #11731
Comments
https://github.com/mautrix/signal currently depends on this implementation detail. This in turn means that the bridge doesn't work with conduit. |
The problem here is that synapse short-circuits initial_content power_levels into as an override, while that is not documented anywhere. While this is "fine" as an optimisation, this becomes a problem when software starts to rely on it, and other servers suddenly have to deal with this problem. I think that, as (I'll create a complement test for this) |
@turt2live mentioned in the #dev room that this is likely a copy oversight from when the spec was still being derived from synapse, this is the commit that added the change, 7 years ago. |
Our gut feeling is that Synapse's behavior should be preferred in this case, and a spec clarification / spec change should be raised to propose aligning the Spec with Synapse. |
(Or that could be handled in MSC3214 per Timo's comment?) |
I believe 3214 would indeed solve it, I think focusing on that would be a good way forward. |
Just want to note that this real scenario fails:
Yes, it is fully intended behavior that here, the room creator is going to be PL 50 and not PL 100. Note that room creator here is The reason why I do this is mainly legal nature. As in Matrix Art needs to be easily moderateable. As long as the same PL can't ban each other, this needs to happen. |
synapse/synapse/handlers/room.py
Lines 820 to 822 in 890c0c0
If no power_level_content_override event is given in step 3, one needs to create a default power levels event. The power levels event from initial_state can only be used in step 6 and needs to be auth checked against the power levels event from step 3.
https://spec.matrix.org/v1.1/client-server-api/#post_matrixclientv3createroom
The text was updated successfully, but these errors were encountered: