diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt index 6a227eb..8231702 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt @@ -724,9 +724,6 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { private suspend fun updateMessageStatusInDb(messageId: String, delivered: Int) { val account = myPublicKey ?: return try { - // Never downgrade delivery status - val existing = messageDao.findMessageById(account, messageId) - if (existing != null && existing.delivered > delivered) return messageDao.updateDeliveryStatus(account, messageId, delivered) } catch (e: Exception) {} } @@ -740,8 +737,11 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val account = myPublicKey ?: return try { // Never downgrade delivery status (e.g. DELIVERED→WAITING race) - val existing = messageDao.findMessageById(account, messageId) - val safeDelivered = if (existing != null && existing.delivered > delivered) existing.delivered else delivered + val safeDelivered = try { + val existing = messageDao.findMessageById(account, messageId) + if (existing != null && existing.delivered > delivered) existing.delivered else delivered + } catch (_: Exception) { delivered } + messageDao.updateDeliveryStatusAndAttachments( account, messageId,