diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt index 680554f396..cb0ddf4347 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt @@ -65,6 +65,11 @@ class ConversationShortcutRankingUpdateJob private constructor( override fun getFactoryKey() = KEY override fun onRun() { + if (recipient.id.isUnknown) { + Log.w(TAG, "Recipient no longer exists. Skipping shortcut update.") + return + } + if (SignalStore.settings.screenLockEnabled) { Log.i(TAG, "Screen lock enabled. Clearing shortcuts.") ConversationUtil.clearAllShortcuts(context) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java index 7999886f17..dae9bb4d54 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java @@ -488,7 +488,12 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. keyedExecutor.execute(id.toString(), () -> { try { - Recipient group = Recipient.resolved(id); + Recipient group = Recipient.resolved(id); + if (!group.getGroupId().isPresent()) { + Log.w(TAG, "Recipient " + id + " is no longer a group. Skipping peek."); + return; + } + GroupId.V2 groupId = group.requireGroupId().requireV2(); ExternalGroupCredential credential = GroupManager.getExternalGroupCredential(context, groupId);