From 0bf54e6b456fa8fdcaf2761d4f619050067f0832 Mon Sep 17 00:00:00 2001 From: Michelle Tang Date: Fri, 27 Feb 2026 15:19:48 -0500 Subject: [PATCH] Fix network crash when unpinning. --- .../securesms/service/PinnedMessageManager.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/PinnedMessageManager.kt b/app/src/main/java/org/thoughtcrime/securesms/service/PinnedMessageManager.kt index 01eea52e6c..733edec7fd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/PinnedMessageManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/PinnedMessageManager.kt @@ -11,6 +11,7 @@ import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.GroupUtil +import org.thoughtcrime.securesms.util.NetworkUtil import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage /** @@ -63,7 +64,17 @@ class PinnedMessageManager( if (conversationRecipient.isGroup) { GroupUtil.setDataMessageGroupContext(application, dataMessageBuilder, conversationRecipient.requireGroupId().requirePush()) } - AppDependencies.signalServiceMessageSender.sendSyncMessage(dataMessageBuilder.build()) + + // Best-effort attempt so that messages expire at the same time across devices but if it fails, we can ignore. + if (NetworkUtil.isConnected(application)) { + try { + AppDependencies.signalServiceMessageSender.sendSyncMessage(dataMessageBuilder.build()) + } catch (e: Exception) { + Log.w(TAG, "Failed to send unpin sync message for message ${record.id}. Other devices will expire the pin independently.", e) + } + } else { + Log.w(TAG, "Failed to send unpin sync message for message ${record.id}. Other devices will expire the pin independently.") + } } }