|
| 1 | +# MSCXXXX: Remove /v1/send_join |
| 2 | + |
| 3 | +[/_matrix/federation/v1/send_join/{roomId}/{eventId}] has been superseded by a `v2` endpoint and |
| 4 | +deprecated with [MSC1802] in [r0.1.4] of the federation API (2020). Given the time elapsed and the |
| 5 | +fact that the continued presence of the derpecated endpoint occasionally causes confusion[^1], it |
| 6 | +should be removed from the spec. |
| 7 | + |
| 8 | +## Proposal |
| 9 | + |
| 10 | +[/_matrix/federation/v1/send_join/{roomId}/{eventId}] is removed from the spec. |
| 11 | + |
| 12 | +## Potential issues |
| 13 | + |
| 14 | +Compatibility issues appear unlikely as the ecosystem seems to have adapted rather well. |
| 15 | + |
| 16 | +### Synapse |
| 17 | + |
| 18 | +Synapse has started supporting the `v2` endpoint for incoming requests in [v1.8.0] (January 2020). |
| 19 | +In the same version, Synapse has also started preferring the `v2` endpoint for outgoing requests, |
| 20 | +falling back to `v1` only when `v2` is unavailable. |
| 21 | + |
| 22 | +- https://github.com/matrix-org/synapse/commit/54ae52ba960df2bcc1daa76b6ef83b125ab9aac9#diff-b8a7e2066859e82776a9d0803499bfdc19707b3279e8fd43457f69f18c5cfecfL524-R548 |
| 23 | + (incoming) |
| 24 | +- https://github.com/matrix-org/synapse/commit/54ae52ba960df2bcc1daa76b6ef83b125ab9aac9#diff-3cf3f534d150a0319b7bdd81c884daff978bba8f8c603d7f023d5dd5d73e1ab1R600-R632 |
| 25 | + (outgoing) |
| 26 | + |
| 27 | +This behaviour is still present in the currently latest release [v1.141.0] (October 2025). |
| 28 | + |
| 29 | +- https://github.com/element-hq/synapse/blob/v1.141.0/synapse/federation/transport/server/federation.py#L422 |
| 30 | + (incoming) |
| 31 | +- https://github.com/element-hq/synapse/blob/v1.141.0/synapse/federation/federation_client.py#L1356 |
| 32 | + (outgoing) |
| 33 | + |
| 34 | +### Dendrite |
| 35 | + |
| 36 | +Dendrite has stopped supporting the `v1` endpoint for incoming requests in December 2019 and to this |
| 37 | +day only offers `v2`. |
| 38 | + |
| 39 | +- https://github.com/matrix-org/dendrite/commit/af9568ba4468eb106ec305df496fbe1319fd74eb |
| 40 | + |
| 41 | +For outgoing requests Dendrite relies on gomatrixserverlib which since June 2020 is preferring `v2`, |
| 42 | +falling back to `v1` only when `v2` is not available. |
| 43 | + |
| 44 | +- https://github.com/matrix-org/gomatrixserverlib/commit/5539854e4abc4ce179e991fbffaccde06b695dbc |
| 45 | + |
| 46 | +### Conduit & friends |
| 47 | + |
| 48 | +Conduit has first started to support the `v2` endpoint for incoming requests in April 2021. |
| 49 | + |
| 50 | +- https://gitlab.com/famedly/conduit/-/commit/eedac4fd9610feee34963d0bb227b354f97cd210?expanded=1 |
| 51 | + (see `server_server.rs`, line 1755) |
| 52 | + |
| 53 | +Support for the `v1` endpoint was added shortly afterwards in July 2021. |
| 54 | + |
| 55 | +- https://gitlab.com/famedly/conduit/-/commit/48494c946496c36b2d1f85da1e8877ac95e2d664?expanded=1 |
| 56 | + |
| 57 | +As of writing, this behaviour is still present in Conduit and derivates such as tuwunel today. |
| 58 | + |
| 59 | +- https://github.com/matrix-construct/tuwunel/blob/d24986edf198cc8b37a47ed94b50a72a566c5cca/src/api/server/send_join.rs#L265 |
| 60 | + |
| 61 | +When Conduit first gained support for joining federated rooms in August 2020, it used `v2` |
| 62 | +exclusively without falling back. |
| 63 | + |
| 64 | +- https://gitlab.com/famedly/conduit/-/commit/eedac4fd9610feee34963d0bb227b354f97cd210 (see |
| 65 | + `membership.rs`, line 95) |
| 66 | + |
| 67 | +Again, this behaviour is still present in Conduit and derivates such as tuwunel today. |
| 68 | + |
| 69 | +- https://github.com/matrix-construct/tuwunel/blob/d24986edf198cc8b37a47ed94b50a72a566c5cca/src/service/membership/join.rs#L710 |
| 70 | + |
| 71 | +## Alternatives |
| 72 | + |
| 73 | +None. |
| 74 | + |
| 75 | +## Security considerations |
| 76 | + |
| 77 | +None. |
| 78 | + |
| 79 | +## Unstable prefix |
| 80 | + |
| 81 | +None. |
| 82 | + |
| 83 | +## Dependencies |
| 84 | + |
| 85 | +None. |
| 86 | + |
| 87 | +[^1]: See e.g. https://github.com/matrix-org/matrix-spec/issues/1514 and |
| 88 | + https://github.com/matrix-org/matrix-spec/issues/1515. |
| 89 | + |
| 90 | + [/_matrix/federation/v1/send_join/{roomId}/{eventId}]: https://spec.matrix.org/v1.16/server-server-api/#put_matrixfederationv1send_joinroomideventid |
| 91 | + [MSC1802]: https://github.com/matrix-org/matrix-spec-proposals/blob/old_master/proposals/1802-standardised-federation-response-format.md |
| 92 | + [r0.1.4]: https://spec.matrix.org/legacy/server_server/r0.1.4.html |
| 93 | + [v1.8.0]: https://github.com/matrix-org/synapse/releases/tag/v1.8.0 |
| 94 | + [v1.141.0]: https://github.com/element-hq/synapse/releases/tag/v1.141.0 |
0 commit comments