diff --git a/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp b/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp
--- a/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp
+++ b/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp
@@ -556,6 +556,7 @@
             error = "user has not been initialized";
           } else {
             result = this->cryptoModule->getOneTimeKeys(oneTimeKeysAmount);
+            this->persistCryptoModule();
           }
           this->jsInvoker_->invokeAsync([=, &innerRt]() {
             if (error.size()) {
@@ -609,6 +610,7 @@
             try {
               contentPrekey = this->cryptoModule->generateAndGetPrekey();
               contentPrekeySignature = this->cryptoModule->getPrekeySignature();
+              this->persistCryptoModule();
               notifPrekey =
                   NotificationsCryptoModule::generateAndGetNotificationsPrekey(
                       "Comm");