diff --git a/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt b/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt
index add64887956a79f92de3186295ebcb409cbdae68..20b67752185ee27741d2a216f186fb6137e82797 100644
--- a/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt
+++ b/app/src/main/java/io/xxlabs/messenger/data/room/dao/RequestsDao.kt
@@ -21,6 +21,9 @@ interface RequestsDao {
     @Query("SELECT * FROM Requests WHERE requestId IN (SELECT userId FROM Contacts)")
     fun getContactRequests(): Flow<List<RequestData>>
 
+    @Query("SELECT * FROM Requests WHERE requestId IN (SELECT userId FROM Contacts)")
+    fun getContactRequestsOnce(): List<RequestData>
+
     @Query("SELECT * FROM Requests WHERE requestId IN (SELECT groupId FROM Groups)")
     fun getGroupInvitations(): Flow<List<RequestData>>
 
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt
index e30a49ec10a6e5ddb133b9a4b899f107f3f26074..b94bb691eba5b4aad49af1dc9e54d6d87a26b376 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt
@@ -8,6 +8,7 @@ import kotlinx.coroutines.flow.Flow
 interface LocalRequestsDataSource {
     val unreadCount: Flow<Int>
 
+    suspend fun getContactRequestsOnce(): List<RequestData>
     suspend fun getContactRequests(): Flow<List<RequestData>>
     suspend fun getGroupInvitations(): Flow<List<RequestData>>
     suspend fun getRequest(requestId: ByteArray): RequestData?
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt
index 71643ddee64be1dc029ce403211557573d00ee28..47a36b5f2d9c5434b816f2b500c8223b11b7934c 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/data/RequestsDatabase.kt
@@ -52,6 +52,9 @@ class RequestsDatabase @Inject constructor(
         }
     }
 
+    override suspend fun getContactRequestsOnce(): List<RequestData> =
+        requestsDao.getContactRequestsOnce()
+
     override suspend fun getContactRequests(): Flow<List<RequestData>> =
         requestsDao.getContactRequests()
             .stateIn(scope, SharingStarted.Eagerly, listOf())
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt
index be2e069f0c9151af70b75020ced1129e2f4495db..caf0d00d4d8efd7c95dba7730585bc47abc860a1 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt
@@ -10,6 +10,8 @@ import io.xxlabs.messenger.requests.bindings.VerificationResult
 import io.xxlabs.messenger.requests.data.LocalRequestsDataSource
 import io.xxlabs.messenger.requests.data.RequestDataSource
 import io.xxlabs.messenger.requests.model.ContactRequest
+import io.xxlabs.messenger.support.appContext
+import io.xxlabs.messenger.support.extensions.toast
 import io.xxlabs.messenger.support.util.value
 import kotlinx.coroutines.*
 import kotlinx.coroutines.flow.*
@@ -121,8 +123,15 @@ class ContactRequestsRepository @Inject constructor(
 
     override fun failUnverifiedRequests() {
         scope.launch {
-            getRequests().take(1).collect { requests ->
-                requests.filter {
+            localDataSource.getContactRequestsOnce().let { requestDataList ->
+                requestDataList.mapNotNull { requestData ->
+                    val contactData = daoRepository
+                        .getContactByUserId(requestData.requestId)
+                        .value()
+                    contactData?.let {
+                        ContactRequestData(it, requestData.unread)
+                    }
+                }.filter {
                     it.requestStatus == VERIFYING
                 }.forEach {
                     update(it, VERIFICATION_FAIL)
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt b/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt
index 2d4950afed8b7ecf39f6e18eb3c7971e6d110094..08f141021cfe7eb13d03515090ef125bb3eacf81 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt
@@ -27,7 +27,6 @@ import io.xxlabs.messenger.repository.client.ClientRepository
 import io.xxlabs.messenger.requests.data.contact.ContactRequestData
 import io.xxlabs.messenger.requests.data.contact.ContactRequestsRepository
 import io.xxlabs.messenger.requests.data.contact.RequestMigrator
-import io.xxlabs.messenger.requests.data.group.InvitationMigrator
 import io.xxlabs.messenger.support.extensions.combineWith
 import io.xxlabs.messenger.support.extensions.toBase64String
 import io.xxlabs.messenger.support.isMockVersion
@@ -77,6 +76,11 @@ class ContactsViewModel @Inject constructor(
     init {
         Timber.v("isAuthCallbackRegistered: ${isAuthCallbackRegistered()}")
         migrateOldRequests()
+
+        // The app has presumably had a fresh launch.
+        // Fail requests that haven't verified yet, so they may be retried manually by user.
+        failVerifyingRequests()
+
         if (BuildConfig.DEBUG) listContacts()
     }
 
@@ -97,10 +101,6 @@ class ContactsViewModel @Inject constructor(
     fun registerAuthCallback() {
         Timber.v("[MAIN] Registering auth callback...")
         if (!isAuthCallbackRegistered()) {
-            // The app has presumably had a fresh launch.
-            // Fail requests that haven't verified yet, so they may be retried manually by user.
-            failVerifyingRequests()
-
             Timber.v("[MAIN] nor initialized, initializing network callback...")
             subscriptions.add(
                 repo.registerAuthCallback(