diff --git a/native/ios/Comm/TemporalMessageStorage/TemporalMessageStorage.mm b/native/ios/Comm/TemporalMessageStorage/TemporalMessageStorage.mm
--- a/native/ios/Comm/TemporalMessageStorage/TemporalMessageStorage.mm
+++ b/native/ios/Comm/TemporalMessageStorage/TemporalMessageStorage.mm
@@ -139,4 +139,19 @@
   return allMessages;
 }
 
+- (void)ensureLockUsable {
+  NSArray<NSString *> *storageContents =
+      [NSFileManager.defaultManager contentsOfDirectoryAtPath:self.directoryPath
+                                                        error:nil];
+  NSError *err = nil;
+  if (storageContents.count > randomFilesNumberThreshold) {
+    [[[NonBlockingLock alloc] initWithName:self.lockName] destroyLock:&err];
+  }
+  if (err) {
+    comm::Logger::log(
+        "Failed to delete lock. Details: " +
+        std::string([err.localizedDescription UTF8String]));
+  }
+}
+
 @end