diff --git a/ts/textsecure/AccountManager.ts b/ts/textsecure/AccountManager.ts
index 454f4a03fd0..ce92ec0e718 100644
--- a/ts/textsecure/AccountManager.ts
+++ b/ts/textsecure/AccountManager.ts
@@ -124,7 +124,7 @@ type CreateAccountSharedOptionsType = Readonly<{
   aciKeyPair: KeyPairType;
   pniKeyPair: KeyPairType;
   profileKey: Uint8Array;
-  masterKey: Uint8Array | undefined;
+  masterKey: Uint8Array;
   backupFile?: Uint8Array;
 }>;
 
@@ -428,8 +428,9 @@ export default class AccountManager extends EventTarget {
         !provisionMessage.provisioningCode ||
         !provisionMessage.aciKeyPair ||
         !provisionMessage.pniKeyPair ||
-        !provisionMessage.profileKey ||
         !provisionMessage.aci ||
+        !Bytes.isNotEmpty(provisionMessage.profileKey) ||
+        !Bytes.isNotEmpty(provisionMessage.masterKey) ||
         !isUntaggedPniString(provisionMessage.untaggedPni)
       ) {
         throw new Error(
@@ -1261,13 +1262,11 @@ export default class AccountManager extends EventTarget {
     if (userAgent) {
       await storage.put('userAgent', userAgent);
     }
-    if (masterKey) {
-      await storage.put('masterKey', Bytes.toBase64(masterKey));
-      await storage.put(
-        'storageKey',
-        Bytes.toBase64(deriveStorageServiceKey(masterKey))
-      );
-    }
+    await storage.put('masterKey', Bytes.toBase64(masterKey));
+    await storage.put(
+      'storageKey',
+      Bytes.toBase64(deriveStorageServiceKey(masterKey))
+    );
 
     await storage.put('read-receipt-setting', Boolean(readReceipts));