@@ -798,29 +798,32 @@ public class MessageSender {
798798
799799 let senderKeyRecipients : Set < ServiceId >
800800 let sendViaSenderKey : ( @Sendable ( ) async -> [ ( ServiceId , any Error ) ] ) ?
801- if recoveryState. canUseMultiRecipientSealedSender, thread. usesSenderKey {
802- ( senderKeyRecipients, sendViaSenderKey) = self . prepareSenderKeyMessageSend (
803- for: serviceIds,
804- in: thread,
805- message: message,
806- serializedMessage: serializedMessage,
807- endorsements: endorsements,
808- udAccessMap: udAccessMap,
809- senderCertificate: senderCertificate,
810- localIdentifiers: localIdentifiers,
811- tx: tx
812- )
813- } else {
814- senderKeyRecipients = [ ]
815- sendViaSenderKey = nil
816- }
801+ if thread. usesSenderKey {
802+ do throws ( OWSAssertionError) {
803+ guard recoveryState. canUseMultiRecipientSealedSender else {
804+ throw OWSAssertionError ( " Can't use Sender Key because of a prior failure. " )
805+ }
806+ ( senderKeyRecipients, sendViaSenderKey) = try self . prepareSenderKeyMessageSend (
807+ for: serviceIds,
808+ in: thread,
809+ message: message,
810+ serializedMessage: serializedMessage,
811+ endorsements: endorsements,
812+ udAccessMap: udAccessMap,
813+ senderCertificate: senderCertificate,
814+ localIdentifiers: localIdentifiers,
815+ tx: tx
816+ )
817+ } catch {
818+ senderKeyRecipients = [ ]
819+ sendViaSenderKey = nil
817820
818- if let thread = thread as? TSGroupThread , sendViaSenderKey == nil {
819- let fullMembers = Set ( thread. groupMembership. fullMembers. compactMap ( \. serviceId) )
820- if fullMembers. intersection ( serviceIds) . count >= 2 {
821821 let notificationPresenter = SSKEnvironment . shared. notificationPresenterRef
822- notificationPresenter. notifyTestPopulation ( ofErrorMessage: " Couldn't send using GSEs. " )
822+ notificationPresenter. notifyTestPopulation ( ofErrorMessage: error . description )
823823 }
824+ } else {
825+ senderKeyRecipients = [ ]
826+ sendViaSenderKey = nil
824827 }
825828
826829 return . sendPreparedMessage( SendMessageNextAction . PreparedState (
0 commit comments