Compare commits

..

1 commit

Author SHA1 Message Date
Harri 430f5317b6
Merge 19fa1c9cbf into fe3f43a905 2025-11-03 17:25:10 +01:00
8 changed files with 25 additions and 36 deletions

View file

@ -1 +0,0 @@
`M_RESOURCE_LIMIT_EXCEEDED` is now listed as a common error code.

View file

@ -1 +0,0 @@
Clarify how to use `state_after` ahead of declaring full support for its spec version.

View file

@ -1 +0,0 @@
`device_one_time_keys_count` is only optional if no unclaimed one-time keys exist.

View file

@ -1 +0,0 @@
In room versions 3 through 12, clarify that when you have the power to redact, it is possible to redact events that you don't have the power to send.

View file

@ -136,17 +136,6 @@ code if the endpoint is implemented, but the incorrect HTTP method is used.
{{% added-in v="1.17" %}} The device ID supplied by the application service does {{% added-in v="1.17" %}} The device ID supplied by the application service does
not belong to the user ID during [identity assertion](/application-service-api/#identity-assertion). not belong to the user ID during [identity assertion](/application-service-api/#identity-assertion).
`M_RESOURCE_LIMIT_EXCEEDED`
The request cannot be completed because the homeserver has reached a
resource limit imposed on it. For example, a homeserver held in a shared
hosting environment may reach a resource limit if it starts using too
much memory or disk space. The error MUST have an `admin_contact` field
to provide the user receiving the error a place to reach out to.
Typically, this error will appear on routes which attempt to modify
state (e.g.: sending messages, account data, etc) and not routes which
only read state (e.g.: [`/sync`](#get_matrixclientv3sync),
[`/user/{userId}/account_data/{type}`](#get_matrixclientv3useruseridaccount_datatype), etc).
`M_UNKNOWN` `M_UNKNOWN`
An unknown error has occurred. An unknown error has occurred.
@ -232,6 +221,17 @@ The request or entity was too large.
The resource being requested is reserved by an application service, or The resource being requested is reserved by an application service, or
the application service making the request has not created the resource. the application service making the request has not created the resource.
`M_RESOURCE_LIMIT_EXCEEDED`
The request cannot be completed because the homeserver has reached a
resource limit imposed on it. For example, a homeserver held in a shared
hosting environment may reach a resource limit if it starts using too
much memory or disk space. The error MUST have an `admin_contact` field
to provide the user receiving the error a place to reach out to.
Typically, this error will appear on routes which attempt to modify
state (e.g.: sending messages, account data, etc) and not routes which
only read state (e.g.: [`/sync`](#get_matrixclientv3sync),
[`/user/{userId}/account_data/{type}`](#get_matrixclientv3useruseridaccount_datatype), etc).
`M_CANNOT_LEAVE_SERVER_NOTICE_ROOM` `M_CANNOT_LEAVE_SERVER_NOTICE_ROOM`
The user is unable to reject an invite to join the server notices room. The user is unable to reject an invite to join the server notices room.
See the [Server Notices](#server-notices) module for more information. See the [Server Notices](#server-notices) module for more information.

View file

@ -1775,18 +1775,19 @@ property is required for inclusion, though previous versions of the
specification did not have it. In addition to `/versions`, this can be specification did not have it. In addition to `/versions`, this can be
a way to identify the server's support for fallback keys. a way to identify the server's support for fallback keys.
| Parameter | Type | Description |
|----------------------------------|-------------------|------------------------------------------------------------------------------------------------------------------------| | Parameter | Type | Description |
| device_lists | DeviceLists | Optional. Information on e2e device updates. Note: only present on an incremental sync. | |----------------------------------|--------------------|------------------------------------------------------------------------------------------------------------------------|
| device_one_time_keys_count | {string: integer} | **Required if any unclaimed one-time keys exist.** For each key algorithm, the number of unclaimed one-time keys currently held on the server for this device. If the count for an algorithm is zero, servers MAY omit that algorithm. If the count for all algorithms is zero, servers MAY omit this parameter entirely. | | device_lists | DeviceLists | Optional. Information on e2e device updates. Note: only present on an incremental sync. |
| device_unused_fallback_key_types | [string] | **Required.** The unused fallback key algorithms. | | device_one_time_keys_count | {string: integer} | Optional. For each key algorithm, the number of unclaimed one-time keys currently held on the server for this device. If an algorithm is unlisted, the count for that algorithm is assumed to be zero. If this entire parameter is missing, the count for all algorithms is assumed to be zero. |
| device_unused_fallback_key_types | [string] | **Required.** The unused fallback key algorithms. |
`DeviceLists` `DeviceLists`
| Parameter | Type | Description | | Parameter | Type | Description |
|-----------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| |------------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| changed | [string] | List of users who have updated their device identity or cross-signing keys, or who now share an encrypted room with the client since the previous sync response. | | changed | [string] | List of users who have updated their device identity or cross-signing keys, or who now share an encrypted room with the client since the previous sync response. |
| left | [string] | List of users with whom we do not share any encrypted rooms anymore since the previous sync response. | | left | [string] | List of users with whom we do not share any encrypted rooms anymore since the previous sync response. |
{{% boxes/note %}} {{% boxes/note %}}
For optimal performance, Alice should be added to `changed` in Bob's For optimal performance, Alice should be added to `changed` in Bob's

View file

@ -17,9 +17,6 @@ is met:
2. The domain of the redaction event's `sender` matches that of the 2. The domain of the redaction event's `sender` matches that of the
original event's `sender`. original event's `sender`.
Note that the first condition holds true even when the `sender` doesn't have a
high enough power level to send the type of event that they're redacting.
If the server would apply a redaction, the redaction event is also sent If the server would apply a redaction, the redaction event is also sent
to clients. Otherwise, the server simply waits for a valid partner event to clients. Otherwise, the server simply waits for a valid partner event
to arrive where it can then re-check the above. to arrive where it can then re-check the above.

View file

@ -133,15 +133,10 @@ paths:
sync and the **start** of the timeline in `state` and MUST omit sync and the **start** of the timeline in `state` and MUST omit
`state_after`. `state_after`.
Servers MAY implement this parameter ahead of declaring support for Even if this is set to `true`, clients MUST update their local state
the version of the spec in which it was introduced. Consequently, with events in `state` and `timeline` if `state_after` is missing in
clients MAY set this parameter to `true` regardless of the the response, for compatibility with servers that don't support this
[`/versions`](/client-server-api/#get_matrixclientversions) response. parameter.
If they do, they can infer whether the server actually supports this
parameter from the presence of `state_after` in the response. If
`state_after` is missing, clients MUST behave as if they had not
specified the parameter and update their local state with events
in `state` and `timeline`.
By default, this is `false`. By default, this is `false`.
example: false example: false