diff --git a/src/Messages/TSMessagesManager.m b/src/Messages/TSMessagesManager.m index eed7a0231..e08946a40 100644 --- a/src/Messages/TSMessagesManager.m +++ b/src/Messages/TSMessagesManager.m @@ -234,24 +234,24 @@ NS_ASSUME_NONNULL_BEGIN TSStorageManager *storageManager = [TSStorageManager sharedManager]; NSString *recipientId = messageEnvelope.source; int deviceId = messageEnvelope.sourceDevice; + dispatch_async([OWSDispatch sessionStoreQueue], ^{ + if (![storageManager containsSession:recipientId deviceId:deviceId]) { + [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { + TSErrorMessage *errorMessage = + [TSErrorMessage missingSessionWithEnvelope:messageEnvelope withTransaction:transaction]; + [errorMessage saveWithTransaction:transaction]; + }]; + return; + } - if (![storageManager containsSession:recipientId deviceId:deviceId]) { - [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { - TSErrorMessage *errorMessage = - [TSErrorMessage missingSessionWithEnvelope:messageEnvelope withTransaction:transaction]; - [errorMessage saveWithTransaction:transaction]; - }]; - return; - } - - // DEPRECATED - Remove after all clients have been upgraded. - NSData *encryptedData = messageEnvelope.hasContent ? messageEnvelope.content : messageEnvelope.legacyMessage; - if (!encryptedData) { - DDLogError(@"Skipping message envelope which had no encrypted data"); - return; - } + // DEPRECATED - Remove after all clients have been upgraded. + NSData *encryptedData + = messageEnvelope.hasContent ? messageEnvelope.content : messageEnvelope.legacyMessage; + if (!encryptedData) { + DDLogError(@"Skipping message envelope which had no encrypted data"); + return; + } - dispatch_async([OWSDispatch sessionStoreQueue], ^{ NSData *plaintextData; @try {