diff --git a/app/main.main.ts b/app/main.main.ts index 4cfe47e7b6..e82204be55 100644 --- a/app/main.main.ts +++ b/app/main.main.ts @@ -1367,9 +1367,9 @@ async function showAbout() { async function getIsLinked() { try { - const number = await sql.sqlRead('getItemById', 'number_id'); + const aci = await sql.sqlRead('getItemById', 'uuid_id'); const password = await sql.sqlRead('getItemById', 'password'); - return Boolean(number && password); + return Boolean(aci && password); } catch (e) { return false; } diff --git a/ts/textsecure/WebAPI.preload.ts b/ts/textsecure/WebAPI.preload.ts index 1c5796cdaf..25d6f9a216 100644 --- a/ts/textsecure/WebAPI.preload.ts +++ b/ts/textsecure/WebAPI.preload.ts @@ -1015,8 +1015,8 @@ export type GetSenderCertificateResultType = Readonly<{ certificate: string }>; const whoamiResultZod = z.object({ uuid: z.string(), - pni: untaggedPniSchema, - number: z.string(), + pni: untaggedPniSchema.nullish(), + number: z.string().nullish(), usernameHash: z.string().nullish(), usernameLinkHandle: z.string().nullish(), }); diff --git a/ts/util/checkOurPniIdentityKey.preload.ts b/ts/util/checkOurPniIdentityKey.preload.ts index 1343f60d67..dec88fd04a 100644 --- a/ts/util/checkOurPniIdentityKey.preload.ts +++ b/ts/util/checkOurPniIdentityKey.preload.ts @@ -17,6 +17,12 @@ export async function checkOurPniIdentityKey(): Promise { } const { pni: remotePni } = await whoami(); + if (remotePni == null) { + log.warn(`remote pni absent, local is ${ourPni}`); + window.Whisper.events.emit('unlinkAndDisconnect'); + return; + } + if (toTaggedPni(remotePni) !== ourPni) { log.warn(`remote pni mismatch, ${remotePni} != ${ourPni}`); window.Whisper.events.emit('unlinkAndDisconnect');