diff --git a/src/matrix/SessionContainer.js b/src/matrix/SessionContainer.js index 8e3d147e..3e3dab66 100644 --- a/src/matrix/SessionContainer.js +++ b/src/matrix/SessionContainer.js @@ -248,6 +248,7 @@ export class SessionContainer { await this._session.load(log); if (dehydratedDevice) { await log.wrap("dehydrateIdentity", log => this._session.dehydrateIdentity(dehydratedDevice, log)); + await this._session.setupDehydratedDevice(dehydratedDevice.key, log); } else if (!this._session.hasIdentity) { this._status.set(LoadStatus.SessionSetup); await log.wrap("createIdentity", log => this._session.createIdentity(log)); diff --git a/src/matrix/e2ee/Dehydration.js b/src/matrix/e2ee/Dehydration.js index 65e2b90a..461e6c42 100644 --- a/src/matrix/e2ee/Dehydration.js +++ b/src/matrix/e2ee/Dehydration.js @@ -36,7 +36,7 @@ export async function uploadAccountAsDehydratedDevice(account, hsApi, key, devic const response = await hsApi.createDehydratedDevice({ device_data: { algorithm: DEHYDRATION_LIBOLM_PICKLE_ALGORITHM, - account: account.pickleWithKey(key.binaryKey), + account: account.pickleWithKey(key.binaryKey.slice()), passphrase: key.description?.passphraseParams || {}, }, initial_device_display_name: deviceDisplayName