diff --git a/Signal/src/ViewControllers/ConversationView/MessagesViewController.m b/Signal/src/ViewControllers/ConversationView/MessagesViewController.m index 5c3ef30ef..c3c95660f 100644 --- a/Signal/src/ViewControllers/ConversationView/MessagesViewController.m +++ b/Signal/src/ViewControllers/ConversationView/MessagesViewController.m @@ -2396,9 +2396,20 @@ typedef enum : NSUInteger { DDLogWarn(@"%@ Unhandled tap for error message:%@", self.tag, message); } -- (void)tappedNonBlockingIdentityChangeForRecipientId:(NSString *)signalId +- (void)tappedNonBlockingIdentityChangeForRecipientId:(nullable NSString *)signalId { - NSParameterAssert(signalId != nil); + if (signalId == nil) { + if (self.thread.isGroupThread) { + // Before 2.13 we didn't track the recipient id in the identity change error. + DDLogWarn(@"%@ Ignoring tap on legacy nonblocking identity change since it has no signal id", self.tag); + } else { + DDLogInfo( + @"%@ Assuming tap on legacy nonblocking identity change corresponds to current contact thread: %@", + self.tag, + self.thread.contactIdentifier); + signalId = self.thread.contactIdentifier; + } + } [self showFingerprintWithRecipientId:signalId]; }