diff --git a/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift index ba40872f8..87e34a3fa 100644 --- a/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Sync Messages/SyncMessagesProtocol.swift @@ -177,11 +177,21 @@ public final class SyncMessagesProtocol : NSObject { thread.save(with: transaction) // This takes into account multi device messageSender.send(autoGeneratedFRMessage, success: { - autoGeneratedFRMessage.remove(with: transaction) - thread.isForceHidden = false + DispatchQueue.main.async { + storage.dbReadWriteConnection.readWrite { transaction in + autoGeneratedFRMessage.remove(with: transaction) + thread.isForceHidden = false + thread.save(with: transaction) + } + } }, failure: { error in - autoGeneratedFRMessage.remove(with: transaction) - thread.isForceHidden = false + DispatchQueue.main.async { + storage.dbReadWriteConnection.readWrite { transaction in + autoGeneratedFRMessage.remove(with: transaction) + thread.isForceHidden = false + thread.save(with: transaction) + } + } }) case .requestReceived: thread.saveFriendRequestStatus(.friends, with: transaction) diff --git a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m index 5b5713765..f4cdb066b 100644 --- a/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m +++ b/SignalServiceKit/src/Messages/OWSFailedMessagesJob.m @@ -50,6 +50,7 @@ static NSString *const OWSFailedMessagesJobMessageStateIndex = @"index_outoing_m [[transaction ext:OWSFailedMessagesJobMessageStateIndex] enumerateKeysMatchingQuery:query usingBlock:^void(NSString *collection, NSString *key, BOOL *stop) { + if (key == nil) { return; } [messageIds addObject:key]; }];