From fd4568974520b75b67705380c0f6adc32acb4d0a Mon Sep 17 00:00:00 2001 From: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:55:31 -0500 Subject: [PATCH] [PM-27342] Fix state migration (#17018) * Fix migration * Update test --- .../73-add-master-password-unlock-data.spec.ts | 12 ++++++++++++ .../migrations/73-add-master-password-unlock-data.ts | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.spec.ts b/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.spec.ts index 28e65216653..2956b1cbcd2 100644 --- a/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.spec.ts +++ b/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.spec.ts @@ -97,6 +97,18 @@ describe("AddMasterPasswordUnlockData", () => { user_user1_kdfConfig_kdfConfig: { kdfType: 0, iterations: 600000 }, }); }); + + it("handles users with missing global accounts", async () => { + const output = await runMigrator(sut, { + global_account_accounts: { user_user1: null }, + user_user1_kdfConfig_kdfConfig: { kdfType: 0, iterations: 600000 }, + }); + + expect(output).toEqual({ + global_account_accounts: { user_user1: null }, + user_user1_kdfConfig_kdfConfig: { kdfType: 0, iterations: 600000 }, + }); + }); }); describe("rollback", () => { diff --git a/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.ts b/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.ts index b9833f439a6..321df7d5cfc 100644 --- a/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.ts +++ b/libs/state/src/state-migrations/migrations/73-add-master-password-unlock-data.ts @@ -32,7 +32,7 @@ type Account = { export class AddMasterPasswordUnlockData extends Migrator<72, 73> { async migrate(helper: MigrationHelper): Promise { async function migrateAccount(userId: string, account: Account) { - const email = account.email; + const email = account?.email; const kdfConfig = await helper.getFromUser(userId, KDF_CONFIG_DISK); const masterKeyEncryptedUserKey = await helper.getFromUser( userId,