From 6363ec0ece05d009b97b6c9a524e2646282ef3d1 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Thu, 3 Feb 2022 18:21:04 +0000 Subject: [PATCH 01/12] proposal for /send_join extensions --- proposals/3706-partial-state-in-send-join.md | 83 ++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 proposals/3706-partial-state-in-send-join.md diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md new file mode 100644 index 00000000000..599755bc308 --- /dev/null +++ b/proposals/3706-partial-state-in-send-join.md @@ -0,0 +1,83 @@ +# MSC3706: Extensions to `/_matrix/federation/v2/send_join/{roomId}/{eventId}` for partial state + +## Background + +It is well known that joining large rooms over federation can be very slow (see, +for example, [synapse#1211](https://github.com/matrix-org/synapse/issues/1211)). + +Much of the reason for this is the large number of events which are returned by +the +[`/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) +API, and must be validated and stored. + +[MSC2775](https://github.com/matrix-org/matrix-doc/pull/2775) makes a number of +suggestions for ways that this can be improved. This MSC focusses on a specific +aspect of those suggestions by proposing specific changes to the `/send_join` +API. + +## Proposal + +[`PUT +/_matrix/federation/v2/send_join/{roomId}/{eventId}/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) +is extended to support "partial state" in its responses. This involves the +following changes: + +First, we add a query-parameter, `partial_state`. This can take the values +`true` or `false`; other values should be rejected with an HTTP 400 error. + +Calling servers use this parameter to indicate support for partial state in +`send_join`. If it is not set to `true`, receiving servers continue to behave +as they do today. + +Receiving servers are not obliged to implement partial state; they are also +free to support it for some rooms and not others. + +The following changes are made to the response: + + * `partial_state`: a new boolean field is added. This should be set to `true` + to indicate that partial state is being returned. It must otherwise be set + to `false` or omitted. + + * `state`: if partial state is being returned, then a subset of the full room + state, rather than the complete room state. In particular, the following + state should be returned: + + * any state with event type other than `m.room.member`. + * TODO: anything else? + + * `auth_chain`: The spec currently defines this as "The auth chain for the + entire current room state". We instead rephrase this as: + + All events in the auth chain for the returned join event, as well as + those in the auth chains for any events returned in `state`. + + (Note that in the case that full state is being returned, the two + definitions are equivalent.) + + * `servers_in_room`: A new field of type `[string]`, listing the servers + active in the room (ie, those with joined members) before the join. + + This is to be used by the joining server to send outgoing federation + transactions while it synchronises the full state. + + +## Potential issues + +TBD + +## Alternatives + +TBD + +## Security considerations + +No security issues are currently foreseen with this specific MSC, though the +larger topic of incremental synchronisation of state has several concerns; +these will be discussed in other MSCs such as MSC2775. + +## Unstable prefix + + +## Dependencies + +This MSC does not build on any existing unaccepted MSCs. From 232d1aa77e2580588ebba255906aa1d62e6feb70 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Thu, 3 Feb 2022 18:25:38 +0000 Subject: [PATCH 02/12] unstable identifiers, typo --- proposals/3706-partial-state-in-send-join.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index 599755bc308..a2e0c91e4f6 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -11,7 +11,7 @@ the API, and must be validated and stored. [MSC2775](https://github.com/matrix-org/matrix-doc/pull/2775) makes a number of -suggestions for ways that this can be improved. This MSC focusses on a specific +suggestions for ways that this can be improved. This MSC focuses on a specific aspect of those suggestions by proposing specific changes to the `/send_join` API. @@ -77,6 +77,14 @@ these will be discussed in other MSCs such as MSC2775. ## Unstable prefix +The following mapping will be used for identifiers in this MSC during +development: + +Proposed final identifier | Purpose | Development identifier +------------------------------- | ------- | ---- +`partial_state` | query parameter, response field | `org.matrix.msc3706.partial_state` +`servers_in_room` | response field | `org.matrix.msc3706.servers_in_room` + ## Dependencies From 342bd40a1ed641da649924737c10a9f1a5521005 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Fri, 4 Feb 2022 16:46:56 +0000 Subject: [PATCH 03/12] Optimise auth_events --- proposals/3706-partial-state-in-send-join.md | 23 ++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index a2e0c91e4f6..0c80c35cac0 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -20,9 +20,11 @@ API. [`PUT /_matrix/federation/v2/send_join/{roomId}/{eventId}/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) is extended to support "partial state" in its responses. This involves the -following changes: +following changes. -First, we add a query-parameter, `partial_state`. This can take the values +### New query parametter + +`partial_state` is added as a new query parameter This can take the values `true` or `false`; other values should be rejected with an HTTP 400 error. Calling servers use this parameter to indicate support for partial state in @@ -32,6 +34,8 @@ as they do today. Receiving servers are not obliged to implement partial state; they are also free to support it for some rooms and not others. +### Changes to the response + The following changes are made to the response: * `partial_state`: a new boolean field is added. This should be set to `true` @@ -48,12 +52,23 @@ The following changes are made to the response: * `auth_chain`: The spec currently defines this as "The auth chain for the entire current room state". We instead rephrase this as: - All events in the auth chain for the returned join event, as well as - those in the auth chains for any events returned in `state`. + > All events in the auth chain for the returned join event, as well as + > those in the auth chains for any events returned in `state`. (Note that in the case that full state is being returned, the two definitions are equivalent.) + * If the `partial_state` query parameter was set, we make a further + optimisation to `auth_chain`: + + > Any events returned within `state` can be omitted from `auth_chain`. + + For example: the `m.room.create` event is part of the room state, so + must be included in `state`. However, it also forms part of the auth chain + for all of the returned events, so in the current spec, must *also* be + included in `auth_chain`. However, this is redundant, so we should omit it + for calling servers which opt into that via the `partial_state` query param. + * `servers_in_room`: A new field of type `[string]`, listing the servers active in the room (ie, those with joined members) before the join. From ce3448291e884e172987cb199f6e22ce2ed9a457 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Fri, 4 Feb 2022 16:50:40 +0000 Subject: [PATCH 04/12] clarify --- proposals/3706-partial-state-in-send-join.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index 0c80c35cac0..ac250273650 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -24,18 +24,18 @@ following changes. ### New query parametter -`partial_state` is added as a new query parameter This can take the values +`partial_state` is added as a new query parameter. This can take the values `true` or `false`; other values should be rejected with an HTTP 400 error. Calling servers use this parameter to indicate support for partial state in `send_join`. If it is not set to `true`, receiving servers continue to behave as they do today. -Receiving servers are not obliged to implement partial state; they are also -free to support it for some rooms and not others. - ### Changes to the response +Receiving servers are not obliged to implement partial state: they are also +free to support it for some rooms and not others. + The following changes are made to the response: * `partial_state`: a new boolean field is added. This should be set to `true` From ec554518da82199572414b20532305c22b8db682 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Fri, 11 Feb 2022 12:36:40 +0000 Subject: [PATCH 05/12] fix typo --- proposals/3706-partial-state-in-send-join.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index ac250273650..5ddca20e843 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -6,8 +6,7 @@ It is well known that joining large rooms over federation can be very slow (see, for example, [synapse#1211](https://github.com/matrix-org/synapse/issues/1211)). Much of the reason for this is the large number of events which are returned by -the -[`/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) +the [`/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) API, and must be validated and stored. [MSC2775](https://github.com/matrix-org/matrix-doc/pull/2775) makes a number of @@ -17,12 +16,11 @@ API. ## Proposal -[`PUT -/_matrix/federation/v2/send_join/{roomId}/{eventId}/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) +[`PUT /_matrix/federation/v2/send_join/{roomId}/{eventId}/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) is extended to support "partial state" in its responses. This involves the following changes. -### New query parametter +### New query parameter `partial_state` is added as a new query parameter. This can take the values `true` or `false`; other values should be rejected with an HTTP 400 error. From 195ba7918a8d06d49029544cc6519b5e73aa18d3 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Thu, 17 Feb 2022 09:54:27 +0000 Subject: [PATCH 06/12] clarify that servers_in_room is required --- proposals/3706-partial-state-in-send-join.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index 5ddca20e843..648bcf2ac9f 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -73,6 +73,8 @@ The following changes are made to the response: This is to be used by the joining server to send outgoing federation transactions while it synchronises the full state. + This field is **required** if the `partial_state` response field is true; it + is otherwise optional. ## Potential issues From 7162140f513974360c7f90536bd0ffc3b83d62bb Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Mon, 3 Oct 2022 19:02:38 +0100 Subject: [PATCH 07/12] Fix up TODOs and other cleanups --- proposals/3706-partial-state-in-send-join.md | 29 ++++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index 648bcf2ac9f..ea9ede4c1d9 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -9,10 +9,10 @@ Much of the reason for this is the large number of events which are returned by the [`/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) API, and must be validated and stored. -[MSC2775](https://github.com/matrix-org/matrix-doc/pull/2775) makes a number of -suggestions for ways that this can be improved. This MSC focuses on a specific -aspect of those suggestions by proposing specific changes to the `/send_join` -API. +[MSC3902](https://github.com/matrix-org/matrix-doc/pull/3902) gives an overview +of changes to the matrix protocol to improve this situation. This MSC focuses +on a specific aspect of those suggestions by proposing specific changes to the +`/send_join` API. ## Proposal @@ -40,13 +40,10 @@ The following changes are made to the response: to indicate that partial state is being returned. It must otherwise be set to `false` or omitted. - * `state`: if partial state is being returned, then a subset of the full room - state, rather than the complete room state. In particular, the following - state should be returned: - - * any state with event type other than `m.room.member`. - * TODO: anything else? - + * `state`: if partial state is being returned, then state events with event + type `m.room.member` are omitted from the response. (All other room state is + returned as normal.) + * `auth_chain`: The spec currently defines this as "The auth chain for the entire current room state". We instead rephrase this as: @@ -78,17 +75,19 @@ The following changes are made to the response: ## Potential issues -TBD +None at present. ## Alternatives -TBD - + * In future, the list of event types to omit could be expanded. (Some rooms + may have large numbers of other state events). For now, this has been + descoped, but could be revisited in future MSCs. + ## Security considerations No security issues are currently foreseen with this specific MSC, though the larger topic of incremental synchronisation of state has several concerns; -these will be discussed in other MSCs such as MSC2775. +these will be discussed in other MSCs such as MSC3902. ## Unstable prefix From 913859e142e8b761018bbbd74d2e03ac9c4f0ec0 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 18 Oct 2022 17:25:09 +0100 Subject: [PATCH 08/12] minor edits --- proposals/3706-partial-state-in-send-join.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index ea9ede4c1d9..4043296f97f 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -23,7 +23,8 @@ following changes. ### New query parameter `partial_state` is added as a new query parameter. This can take the values -`true` or `false`; other values should be rejected with an HTTP 400 error. +`true` or `false`; other values should be rejected with an HTTP 400 error with +matrix error code `M_INVALID_PARAM`. Calling servers use this parameter to indicate support for partial state in `send_join`. If it is not set to `true`, receiving servers continue to behave @@ -41,8 +42,9 @@ The following changes are made to the response: to `false` or omitted. * `state`: if partial state is being returned, then state events with event - type `m.room.member` are omitted from the response. (All other room state is - returned as normal.) + type `m.room.member` are omitted from the response. All other room state is + returned as normal. (See 'Alternatives' for discussion on why only + `m.room.member` events are omitted.) * `auth_chain`: The spec currently defines this as "The auth chain for the entire current room state". We instead rephrase this as: @@ -80,8 +82,15 @@ None at present. ## Alternatives * In future, the list of event types to omit could be expanded. (Some rooms - may have large numbers of other state events). For now, this has been - descoped, but could be revisited in future MSCs. + may have large numbers of other state events). + + Currently, `m.room.member` events are by far the biggest problem. For + example, a `/send_join` request for Matrix HQ returns approximately 85000 + events in `state`, of which all but 44 are `m.room.member`. + + In order to reduce the scope of the change, we have therefore decided to + focus on `m.room.member` events for now. Future MSCs might provde a + mechanism for omitting other event types. ## Security considerations From d531524b8aa8a443206e3908a54fe4d2f07774c5 Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Tue, 25 Oct 2022 17:17:58 +0100 Subject: [PATCH 09/12] Fix a couple typos --- proposals/3706-partial-state-in-send-join.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index 4043296f97f..aa05c25b1a9 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -16,7 +16,7 @@ on a specific aspect of those suggestions by proposing specific changes to the ## Proposal -[`PUT /_matrix/federation/v2/send_join/{roomId}/{eventId}/send_join`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) +[`PUT /_matrix/federation/v2/send_join/{roomId}/{eventId}`](https://spec.matrix.org/v1.2/server-server-api/#put_matrixfederationv2send_joinroomideventid) is extended to support "partial state" in its responses. This involves the following changes. @@ -89,7 +89,7 @@ None at present. events in `state`, of which all but 44 are `m.room.member`. In order to reduce the scope of the change, we have therefore decided to - focus on `m.room.member` events for now. Future MSCs might provde a + focus on `m.room.member` events for now. Future MSCs might provide a mechanism for omitting other event types. ## Security considerations From dd5d6433e8d7c915ea8791ba37954a6b3502be4e Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Tue, 6 Dec 2022 16:43:09 +0000 Subject: [PATCH 10/12] Update proposals/3706-partial-state-in-send-join.md Co-authored-by: Hubert Chathi --- proposals/3706-partial-state-in-send-join.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index aa05c25b1a9..2b398d398bb 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -70,7 +70,7 @@ The following changes are made to the response: active in the room (ie, those with joined members) before the join. This is to be used by the joining server to send outgoing federation - transactions while it synchronises the full state. + transactions while it synchronises the full state, as outlined in [MSC3902](https://github.com/matrix-org/matrix-spec-proposals/pull/3902). This field is **required** if the `partial_state` response field is true; it is otherwise optional. From 6fb4e9cab7429d8f25345c9300bbda7057a21ec1 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 6 Dec 2022 16:42:14 +0000 Subject: [PATCH 11/12] Rename "partial state" parameter Because people don't like it as-is --- proposals/3706-partial-state-in-send-join.md | 32 ++++++++++++-------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index 2b398d398bb..7ba1298cf34 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -22,7 +22,7 @@ following changes. ### New query parameter -`partial_state` is added as a new query parameter. This can take the values +`omit_member_events` is added as a new query parameter. This can take the values `true` or `false`; other values should be rejected with an HTTP 400 error with matrix error code `M_INVALID_PARAM`. @@ -37,9 +37,9 @@ free to support it for some rooms and not others. The following changes are made to the response: - * `partial_state`: a new boolean field is added. This should be set to `true` - to indicate that partial state is being returned. It must otherwise be set - to `false` or omitted. + * `member_events_omitted`: a new boolean field is added. This should be set to `true` + to indicate that `m.room.member` events have been omitted from the response. + It must otherwise be set to `false` or omitted. * `state`: if partial state is being returned, then state events with event type `m.room.member` are omitted from the response. All other room state is @@ -55,7 +55,7 @@ The following changes are made to the response: (Note that in the case that full state is being returned, the two definitions are equivalent.) - * If the `partial_state` query parameter was set, we make a further + * If the `omit_member_events` query parameter was set, we make a further optimisation to `auth_chain`: > Any events returned within `state` can be omitted from `auth_chain`. @@ -64,7 +64,7 @@ The following changes are made to the response: must be included in `state`. However, it also forms part of the auth chain for all of the returned events, so in the current spec, must *also* be included in `auth_chain`. However, this is redundant, so we should omit it - for calling servers which opt into that via the `partial_state` query param. + for calling servers which opt into that via the `omit_member_events` query param. * `servers_in_room`: A new field of type `[string]`, listing the servers active in the room (ie, those with joined members) before the join. @@ -72,7 +72,7 @@ The following changes are made to the response: This is to be used by the joining server to send outgoing federation transactions while it synchronises the full state, as outlined in [MSC3902](https://github.com/matrix-org/matrix-spec-proposals/pull/3902). - This field is **required** if the `partial_state` response field is true; it + This field is **required** if the `member_events_omitted` response field is true; it is otherwise optional. ## Potential issues @@ -88,6 +88,14 @@ None at present. example, a `/send_join` request for Matrix HQ returns approximately 85000 events in `state`, of which all but 44 are `m.room.member`. + Additionally: the client-server API already provides a mechanism for + omitting `m.room.member` events from the `/sync` response, via + [lazy loading](https://spec.matrix.org/v1.4/client-server-api/#lazy-loading-room-members), + which means that this change can be implemented without changes to the + client-server API. Extending the list of event types to be omitted would + require changes to the client-server API and therefore be significantly more + involved. + In order to reduce the scope of the change, we have therefore decided to focus on `m.room.member` events for now. Future MSCs might provide a mechanism for omitting other event types. @@ -103,11 +111,11 @@ these will be discussed in other MSCs such as MSC3902. The following mapping will be used for identifiers in this MSC during development: -Proposed final identifier | Purpose | Development identifier -------------------------------- | ------- | ---- -`partial_state` | query parameter, response field | `org.matrix.msc3706.partial_state` -`servers_in_room` | response field | `org.matrix.msc3706.servers_in_room` - +Proposed final identifier | Purpose | Development identifier +------------------------- | --------------- | ---- +`omit_member_events` | query parameter | `org.matrix.msc3706.partial_state` +`member_events_omitted` | response field | `org.matrix.msc3706.partial_state` +`servers_in_room` | response field | `org.matrix.msc3706.servers_in_room` ## Dependencies From 12e11ec1b17526166c4d8ce234037220fda7105f Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 6 Dec 2022 17:46:13 +0000 Subject: [PATCH 12/12] s/member_events/members/ for consistency with `lazy_load_members`. --- proposals/3706-partial-state-in-send-join.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/proposals/3706-partial-state-in-send-join.md b/proposals/3706-partial-state-in-send-join.md index 7ba1298cf34..1c9edcdfa85 100644 --- a/proposals/3706-partial-state-in-send-join.md +++ b/proposals/3706-partial-state-in-send-join.md @@ -22,7 +22,7 @@ following changes. ### New query parameter -`omit_member_events` is added as a new query parameter. This can take the values +`omit_members` is added as a new query parameter. This can take the values `true` or `false`; other values should be rejected with an HTTP 400 error with matrix error code `M_INVALID_PARAM`. @@ -37,7 +37,7 @@ free to support it for some rooms and not others. The following changes are made to the response: - * `member_events_omitted`: a new boolean field is added. This should be set to `true` + * `members_omitted`: a new boolean field is added. This should be set to `true` to indicate that `m.room.member` events have been omitted from the response. It must otherwise be set to `false` or omitted. @@ -55,7 +55,7 @@ The following changes are made to the response: (Note that in the case that full state is being returned, the two definitions are equivalent.) - * If the `omit_member_events` query parameter was set, we make a further + * If the `omit_members` query parameter was set, we make a further optimisation to `auth_chain`: > Any events returned within `state` can be omitted from `auth_chain`. @@ -64,7 +64,7 @@ The following changes are made to the response: must be included in `state`. However, it also forms part of the auth chain for all of the returned events, so in the current spec, must *also* be included in `auth_chain`. However, this is redundant, so we should omit it - for calling servers which opt into that via the `omit_member_events` query param. + for calling servers which opt into that via the `omit_members` query param. * `servers_in_room`: A new field of type `[string]`, listing the servers active in the room (ie, those with joined members) before the join. @@ -72,7 +72,7 @@ The following changes are made to the response: This is to be used by the joining server to send outgoing federation transactions while it synchronises the full state, as outlined in [MSC3902](https://github.com/matrix-org/matrix-spec-proposals/pull/3902). - This field is **required** if the `member_events_omitted` response field is true; it + This field is **required** if the `members_omitted` response field is true; it is otherwise optional. ## Potential issues @@ -113,8 +113,8 @@ development: Proposed final identifier | Purpose | Development identifier ------------------------- | --------------- | ---- -`omit_member_events` | query parameter | `org.matrix.msc3706.partial_state` -`member_events_omitted` | response field | `org.matrix.msc3706.partial_state` +`omit_members` | query parameter | `org.matrix.msc3706.partial_state` +`members_omitted` | response field | `org.matrix.msc3706.partial_state` `servers_in_room` | response field | `org.matrix.msc3706.servers_in_room` ## Dependencies