Skip to content

Device dehydration: switch to stable identifiers #3265

Description

@richvdh

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 in matrix-js-sdk's src/rust-crypto/DehydratedDeviceManager.ts, the rehydrateDeviceIfAvailable method which stops polling if events is empty. This was kept to prevent an infinite loop if we encountered a server providing the earlier version of the API. This 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.
  • Delete DehydratedDeviceEventsServlet.do_POST from Synapse, which was added for compatibility with old clients.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions