Steps to reproduce
- Have an account where there is a key backup on the server, but it is not signed by the cross-signing key, and the (public) backup encryption key does not match the (private) backup decryption key. For example, do the following:
curl -H "Authorization: Bearer $token" http://localhost:8008/_matrix/client/v3/room_keys/version -d '{"auth_data": {"public_key":"mJQm88HRj9aJh6pvRk05bh7vNyHmJ/nr7vlfK68z3z0","signatures":{}}, "algorithm":"m.megolm_backup.v1.curve25519-aes-sha2"}'
- Open Element-web; go to Settings -> Encryption. Observe:

- Click the "Allow key storage" toggle
Outcome
What did you expect?
Key storage is enabled. Or at least an error dialog, maybe?
What happened instead?
Brief spinner, then toggle is disabled again.
Application version
Element version: 1.11.99-dev Crypto version: Rust SDK 0.10.0 (3cc301d), Vodozemac 0.9.0
Workarounds
There isn't really a sensible workaround.
You could delete the broken key backup version with a request to DELETE /_matrix/client/v3/room_keys/version/{version}, but that's hardly user-friendly.
Or you could do "Reset cryptographic identity", but that will mean other users will see "Bob's identity has changed!" warnings.
Steps to reproduce
Outcome
What did you expect?
Key storage is enabled. Or at least an error dialog, maybe?
What happened instead?
Brief spinner, then toggle is disabled again.
Application version
Element version: 1.11.99-dev Crypto version: Rust SDK 0.10.0 (3cc301d), Vodozemac 0.9.0
Workarounds
There isn't really a sensible workaround.
You could delete the broken key backup version with a request to
DELETE /_matrix/client/v3/room_keys/version/{version}, but that's hardly user-friendly.Or you could do "Reset cryptographic identity", but that will mean other users will see "Bob's identity has changed!" warnings.