This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Disinviting users over federation doesn't work #4808
Labels
A-Federation
A-Invite
Inviting users to rooms and accepting invites
O-Uncommon
Most users are unlikely to come across this or unexpected workflow
S-Minor
Blocks non-critical functionality, workarounds exist.
T-Defect
Bugs, crashes, hangs, security vulnerabilities, or other reported issues.
Riot issue: element-hq/element-web#7318
As mentioned in element-hq/element-web#7318 (comment), this is a different case from #2181 due to Synapse not sending the disinvite over federation to the target homeserver.
As a simple test case:
Server A never notifies Server B of the disinvite (
leave
event), and therefore Server B can't really do anything about it. If the user tries to respond to the event, Server B could realize that 403 on join (or declination of the invite) means it should be locally rejected. At that point, you're in #2181 territory.When Server A is modified to make calls to Server B by sending the disinvite in a transaction, Server B accepts the transaction but ignores the event because it cannot determine the room version (and therefore the event format version). A lightly tested and highly unstable branch for modifying Server A to send the event is available here: 16c8b4e...travis/fix-stuck-invites
Patching Server B's behaviour is non-trivial to me, otherwise I'd just fix it. Would be good if this fix was partnered with spec to clarify that disinvite (leave) events should be sent to target hosts, and that target hosts should expect them. I don't think this is introducing anything new, and shouldn't need a dedicated endpoint either.
The text was updated successfully, but these errors were encountered: