-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Synapse does not tell the clients when it runs out of OTKs #10484
Comments
It seems like this needs clarification in the spec too. Is a server obliged to know about all potential one-time-key algorithms so that it can fully populate this field? What happens if/when we introduce a new algorithm? Maybe |
@richvdh I too ran into this line of thinking, though the possible algorithm names are specced.
What if there is no change in algorithm A, but there is a change in algorithm B? You can't have the absence of |
well they are now, but again: what if we introduce a new algorithm? Clients using the new algorithm will be back where we are now: unable to tell if the server is out of keys or if there is no change.
I was thinking you'd populate the whole field anyway, including the (redundant) count of algorithm A. But you're right, it's not obvious. We should probably take this over to matrix-doc. |
The spec has been updated to clarify that a missing algorithm means zero one-time keys are available. |
Following discussion in #10479 (and especially #10479 (comment)), I've checked the sync response when Synapse does not have OTK (one time key) anymore. So when the number of OTK is changing from N to 0.
Instead of receiving
The client receives
"device_one_time_keys_count":{}
and so the client cannot distinguish "no change" and "no OTK left", and do not upload new OTK, which at the end breaks decryption of some messages.
Server version: 1.38.0 commit 12c92ee
The text was updated successfully, but these errors were encountered: