Once MSC3814 is approved, we will need to switch our draft implementations (synapse, matrix-js-sdk) over to use stable identifiers.
One particular sticking point is likely to be the SSSS key: existing users of the draft implementation will have stored their dehydration keys under an unstable identifier in SSSS, meaning that, in the natural order of things, their existing dehydrated devices will stop working when we switch to stable identifiers. We will need to consult with known users of the prototype implementations, to establish if (and for how long) we need to continue to support the old identifiers.
Additionally:
Once MSC3814 is approved, we will need to switch our draft implementations (synapse, matrix-js-sdk) over to use stable identifiers.
One particular sticking point is likely to be the SSSS key: existing users of the draft implementation will have stored their dehydration keys under an unstable identifier in SSSS, meaning that, in the natural order of things, their existing dehydrated devices will stop working when we switch to stable identifiers. We will need to consult with known users of the prototype implementations, to establish if (and for how long) we need to continue to support the old identifiers.
Additionally:
Remove the temporary code inThis was not needed because, since the API also switched from POST to GET, no server will be offering a GET endpoint that does not comply properly with the correct paging style.matrix-js-sdk'ssrc/rust-crypto/DehydratedDeviceManager.ts, therehydrateDeviceIfAvailablemethod which stops polling ifeventsis empty. This was kept to prevent an infinite loop if we encountered a server providing the earlier version of the API.DehydratedDeviceEventsServlet.do_POSTfrom Synapse, which was added for compatibility with old clients.