diff --git a/auth/src/main/java/org/futo/circles/auth/feature/uia/UIAViewModel.kt b/auth/src/main/java/org/futo/circles/auth/feature/uia/UIAViewModel.kt
index bd4c214204b3a47d9c3b9ac12d1c37c022267583..a4bb317ce31055db6b3f5235ac5eaec83fccb152 100644
--- a/auth/src/main/java/org/futo/circles/auth/feature/uia/UIAViewModel.kt
+++ b/auth/src/main/java/org/futo/circles/auth/feature/uia/UIAViewModel.kt
@@ -109,7 +109,17 @@ class UIAViewModel @Inject constructor(
     }
 
     fun finishForgotPassword(session: Session) {
-        TODO("Not yet implemented")
+        launchBg {
+            val result = createResult {
+                MatrixSessionProvider.awaitForSessionSync(session)
+                createPassPhraseDataSource.createPassPhraseBackup()
+                BSSpekeClientProvider.clear()
+            }
+            (result as? Response.Success)?.let {
+                navigationLiveData.postValue(AuthUIAScreenNavigationEvent.Home)
+            }
+            createBackupResultLiveData.postValue(result)
+        }
     }
 
     private suspend fun handleKeysBackup() {