Merge pull request #5314 from uhoreg/separate_import_error

Fix error when attempting to verify with recovery key with missing backup key
This commit is contained in:
Benoit Marty 2025-10-09 12:02:56 +02:00 committed by GitHub
commit 4308f55473
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -44,6 +44,7 @@ import org.matrix.rustcomponents.sdk.Encryption
import org.matrix.rustcomponents.sdk.UserIdentity
import org.matrix.rustcomponents.sdk.BackupUploadState as RustBackupUploadState
import org.matrix.rustcomponents.sdk.EnableRecoveryProgress as RustEnableRecoveryProgress
import org.matrix.rustcomponents.sdk.RecoveryException as RustRecoveryException
import org.matrix.rustcomponents.sdk.SteadyStateException as RustSteadyStateException
class RustEncryptionService(
@ -205,8 +206,13 @@ class RustEncryptionService(
override suspend fun recover(recoveryKey: String): Result<Unit> = withContext(dispatchers.io) {
runCatchingExceptions {
service.recover(recoveryKey)
}.mapFailure {
it.mapRecoveryException()
}.recoverCatching {
if (it is RustRecoveryException.Import) {
// We ignore import errors because the user will be notified about them via the "Key storage out of sync" detection.
Unit
} else {
throw it.mapRecoveryException()
}
}
}