diff --git a/crates/ruma-client-api/CHANGELOG.md b/crates/ruma-client-api/CHANGELOG.md index 5fac448e..29ead982 100644 --- a/crates/ruma-client-api/CHANGELOG.md +++ b/crates/ruma-client-api/CHANGELOG.md @@ -6,6 +6,10 @@ Breaking changes: the `conditions` field is optional. - `MissingConditionsError` was removed. +Bug fixes: + +- Fix deserialization of `claim_keys` responses without a `failures` field + # 0.17.2 Improvements: diff --git a/crates/ruma-client-api/src/keys/claim_keys/v3.rs b/crates/ruma-client-api/src/keys/claim_keys/v3.rs index bd063f55..5d4faa2f 100644 --- a/crates/ruma-client-api/src/keys/claim_keys/v3.rs +++ b/crates/ruma-client-api/src/keys/claim_keys/v3.rs @@ -44,6 +44,7 @@ pub struct Request { pub struct Response { /// If any remote homeservers could not be reached, they are recorded here. /// The names of the properties are the names of the unreachable servers. + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] pub failures: BTreeMap, /// One-time keys for the queried devices. diff --git a/crates/ruma-client-api/src/keys/claim_keys/v4.rs b/crates/ruma-client-api/src/keys/claim_keys/v4.rs index ef7948f7..4fd9b100 100644 --- a/crates/ruma-client-api/src/keys/claim_keys/v4.rs +++ b/crates/ruma-client-api/src/keys/claim_keys/v4.rs @@ -43,6 +43,7 @@ pub struct Request { pub struct Response { /// If any remote homeservers could not be reached, they are recorded here. /// The names of the properties are the names of the unreachable servers. + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] pub failures: BTreeMap, /// One-time keys for the queried devices.