-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restore fails with error: 'No suitable backups found at given location' #682
Comments
Would you please be so nice and export logs from right after you got those messages? |
I just re-did the restore attempt, which the same result, and here is the log: seedvault-14-4.0-1718651594220.txt. |
Since someone claimed that he got it working using local phone storage for the backup and then copying that to the local storage of the new system, |
As mentioned, in in case the error message given is too vague! For effective user-level debugging, Seedvault should provide to-the-point failure information, e.g.
|
relevent bit from seedvault-14-4.0-1718651594220.txt. 06-17 21:12:20.799 32718 337 E RestoreCoordinator: Error while getting restore set 1718570792674
06-17 21:12:20.799 32718 337 E RestoreCoordinator: java.io.IOException: java.io.IOException
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at com.stevesoltys.seedvault.plugins.saf.DocumentsStorage.getInputStream(DocumentsStorage.kt:134)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at com.stevesoltys.seedvault.plugins.saf.DocumentsProviderStoragePlugin$getAvailableBackups$2$1.invokeSuspend(DocumentsProviderStoragePlugin.kt:125)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at com.stevesoltys.seedvault.plugins.saf.DocumentsProviderStoragePlugin$getAvailableBackups$2$1.invoke(Unknown Source:8)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at com.stevesoltys.seedvault.plugins.saf.DocumentsProviderStoragePlugin$getAvailableBackups$2$1.invoke(Unknown Source:2)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at com.stevesoltys.seedvault.transport.restore.RestoreCoordinator.getAvailableMetadata(RestoreCoordinator.kt:80)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at com.stevesoltys.seedvault.transport.restore.RestoreCoordinator$getAvailableMetadata$1.invokeSuspend(Unknown Source:14)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:32)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: Caused by: java.io.IOException
06-17 21:12:20.799 32718 337 E RestoreCoordinator: at com.stevesoltys.seedvault.plugins.saf.DocumentsStorage.getInputStream(DocumentsStorage.kt:131)
06-17 21:12:20.799 32718 337 E RestoreCoordinator: ... 16 more
06-17 21:12:20.799 32718 337 I RestoreCoordinator: Got available metadata for tokens: [] Here we really can't say much, it is an I/O error. Next one : seedvault-14-4.0-1718651988210.txt is different, here we have 3 restore sets and can't decrypt any of them: 06-17 21:19:16.620 2509 2558 E RestoreCoordinator: Error while getting restore set 1718466670667
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: java.io.IOException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: StreamingAeadDecryptingStream
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: segmentNr:0
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: ciphertextSegmentSize:1048576
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: headerRead:true
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: endOfCiphertext:true
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: endOfPlaintext:false
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: decryptionErrorOccured:true
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: ciphertextSgement position:15247 limit:15247
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: plaintextSegment position:0 limit:0
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: segmentNr:0 endOfCiphertext:true
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.loadSegment(StreamingAeadDecryptingStream.java:176)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.read(StreamingAeadDecryptingStream.java:231)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.read(StreamingAeadDecryptingStream.java:208)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.copyTo(IOStreams.kt:106)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.copyTo$default(IOStreams.kt:103)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.readBytes(IOStreams.kt:136)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.metadata.MetadataReaderImpl.readMetadata(MetadataReader.kt:59)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.transport.restore.RestoreCoordinator.getAvailableMetadata(RestoreCoordinator.kt:81)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.restore.RestoreViewModel$loadRestoreSets$1.invokeSuspend(RestoreViewModel.kt:147)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: Caused by: javax.crypto.AEADBadTagException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at java.lang.reflect.Constructor.newInstance0(Native Method)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.throwAEADBadTagExceptionIfAvailable(OpenSSLAeadCipher.java:320)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.doFinalInternal(OpenSSLAeadCipher.java:348)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.engineDoFinal(OpenSSLAeadCipher.java:262)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at javax.crypto.Cipher.doFinal(Cipher.java:2369)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.AesGcmHkdfStreaming$AesGcmHkdfStreamDecrypter.decryptSegment(AesGcmHkdfStreaming.java:300)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.loadSegment(StreamingAeadDecryptingStream.java:168)
06-17 21:19:16.620 2509 2558 E RestoreCoordinator: ... 16 more
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: Error while getting restore set 1718570792674
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: java.io.IOException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: StreamingAeadDecryptingStream
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: segmentNr:0
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: ciphertextSegmentSize:1048576
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: headerRead:true
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: endOfCiphertext:true
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: endOfPlaintext:false
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: decryptionErrorOccured:true
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: ciphertextSgement position:16005 limit:16005
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: plaintextSegment position:0 limit:0
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: segmentNr:0 endOfCiphertext:true
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.loadSegment(StreamingAeadDecryptingStream.java:176)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.read(StreamingAeadDecryptingStream.java:231)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.read(StreamingAeadDecryptingStream.java:208)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.copyTo(IOStreams.kt:106)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.copyTo$default(IOStreams.kt:103)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.readBytes(IOStreams.kt:136)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.metadata.MetadataReaderImpl.readMetadata(MetadataReader.kt:59)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.transport.restore.RestoreCoordinator.getAvailableMetadata(RestoreCoordinator.kt:81)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.restore.RestoreViewModel$loadRestoreSets$1.invokeSuspend(RestoreViewModel.kt:147)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: Caused by: javax.crypto.AEADBadTagException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at java.lang.reflect.Constructor.newInstance0(Native Method)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.throwAEADBadTagExceptionIfAvailable(OpenSSLAeadCipher.java:320)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.doFinalInternal(OpenSSLAeadCipher.java:348)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.engineDoFinal(OpenSSLAeadCipher.java:262)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at javax.crypto.Cipher.doFinal(Cipher.java:2369)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.AesGcmHkdfStreaming$AesGcmHkdfStreamDecrypter.decryptSegment(AesGcmHkdfStreaming.java:300)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.loadSegment(StreamingAeadDecryptingStream.java:168)
06-17 21:19:16.659 2509 2558 E RestoreCoordinator: ... 16 more
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: Error while getting restore set 1718463896044
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: java.io.IOException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: StreamingAeadDecryptingStream
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: segmentNr:0
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: ciphertextSegmentSize:1048576
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: headerRead:true
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: endOfCiphertext:true
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: endOfPlaintext:false
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: decryptionErrorOccured:true
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: ciphertextSgement position:208 limit:208
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: plaintextSegment position:0 limit:0
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: segmentNr:0 endOfCiphertext:true
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.loadSegment(StreamingAeadDecryptingStream.java:176)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.read(StreamingAeadDecryptingStream.java:231)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.read(StreamingAeadDecryptingStream.java:208)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.copyTo(IOStreams.kt:106)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.copyTo$default(IOStreams.kt:103)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlin.io.ByteStreamsKt.readBytes(IOStreams.kt:136)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.metadata.MetadataReaderImpl.readMetadata(MetadataReader.kt:59)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.transport.restore.RestoreCoordinator.getAvailableMetadata(RestoreCoordinator.kt:81)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.stevesoltys.seedvault.restore.RestoreViewModel$loadRestoreSets$1.invokeSuspend(RestoreViewModel.kt:147)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: Caused by: javax.crypto.AEADBadTagException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at java.lang.reflect.Constructor.newInstance0(Native Method)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.throwAEADBadTagExceptionIfAvailable(OpenSSLAeadCipher.java:320)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.doFinalInternal(OpenSSLAeadCipher.java:348)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.android.org.conscrypt.OpenSSLAeadCipher.engineDoFinal(OpenSSLAeadCipher.java:262)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at javax.crypto.Cipher.doFinal(Cipher.java:2369)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.AesGcmHkdfStreaming$AesGcmHkdfStreamDecrypter.decryptSegment(AesGcmHkdfStreaming.java:300)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: at com.google.crypto.tink.subtle.StreamingAeadDecryptingStream.loadSegment(StreamingAeadDecryptingStream.java:168)
06-17 21:19:16.682 2509 2558 E RestoreCoordinator: ... 16 more
06-17 21:19:16.682 2509 2558 I RestoreCoordinator: Got available metadata for tokens: [] |
So here Seedvault should have reported, e.g., "Error while getting restore set 1718570792674"
The directory The whole directory and all files can be read (e.g., using I can only guess that Seedvault tries to access a wrong file, or access an existing file in a wrong way or access got denied. The app really should report exactly what exactly went wrong on which file. As mentioned below, on a second try there was no I/O error. |
So here Seedvault should have reported, e.g., "Could not decrypt restore set 1718466670667"
So here Seedvault should have reported, e.g., "Could not decrypt restore set 1718570792674" Note that this is the same restore set for which at first an I/O error occurred. Weird.
So here Seedvault should have reported, e.g., "Could not decrypt restore set 1718463896044" I've double-checked that the pass phrase used on the source (backup) and target (restore) system are the same I wonder why nothing could be decrypted. There must be some Seedvault bug here. Since AEAD ciphers are used, looks like the passphrase and/or the encrypted contents |
Maybe the filesystem is corrupted?
Ok, all good then I guess.
Isn't this what "This is most likely due to a wrong recovery code or storage error." is saying? We don't expose low lever details to users and what would be the benefit? If it can not decrypt/read any backups and you are proficient enough to mess with the internal files, then you'll find them yourself.
faulty filesystem or storage medium? Have you tried using a (different) flash drive for backup/restore? |
No - as I wrote, the directory can be read (e.g., using
Not really - it seems to be a matter of luck.
Again, as I wrote in the OP, it is NOT sufficient to provide very vague error messages.
Again, the file system is fine. In my 20+ years of using many different Android phones, I never had issues with the internal file system. |
Sorry, I can't find the pull request from you that provided this behavior.
Why don't you stick with that then? |
Sorry, I can't find the time to dig deep into this development.
After my recent experience with Seedvault, I do stick with Titanium Backup. |
Same problem here with SD card as a storage medium. Could different versions of LineageOS (and probably different versions of SeedVault) be the reason? |
In my case, the same LineageOS version and SeedVault version was used. |
Yes, I updated LineageOS on my old phone to the latest version (I originally wanted to do that after I finished setup of my new phone, but oh well). I made full backup on the old phone and tried to restore on the new one, with the same error. |
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
Just tried with OTG (created backup as an internal storage backup, transferred it to a thumb drive, connected it via OTG adapter, tried to restore). The same error. |
@eternal-sorrow to debug this, could you send me a file/dir listing of your are you certain that the 12-word recovery code is correct? if you still have access to the backup on the new phone, you can use the verify recovery code option to make sure, the same code is used on both devices.
Only if the backup was made on a recent version and you try to restore on a very old version. |
Funny enough, it turned out to be a wrong code issue. But the problem is, why it doesn't say it directly "the code is wrong"? Why such vague error message? Also, when I was trying to (unsuccessfully) restore the backup, I tried many things, including entering the code in different order (in case I wrote it down in different order when I first created it, it was long ago), but it told me instantly that the code was wrong, no vague messages like "No suitable backups". So when it gave me the this message, I thought the code must be correct but something else went wrong after the code was applied. |
Glad you figured it out! We should improve the error message, but it isn't trivial. There may be several backups in this location. Some we can't decrypt, because of wrong code, others may be corrupted and others may produce i/o errors. So hard to combine this into a sensible error message that is actionable for users. An easy start here would be to amend the error text with something like: "Please double check that you entered the recovery code correctly." Contributions welcome. |
Same experience here, backup up on an old (luckily still working) phone on LineageOS 19.1 to an SD card. Notably, verifying the passcode on the NEW phone after initial setup was done did work, so it can read the backup and presumably decrypt it just fine. Update: I'm starting to believe it's just filtering it out due to being on an old version or from a different device. |
Looked at the code, and the log file doesn't contain any relevant logs from RestoreCoordinator.kt::getAvailableBackups() - is this intended behaviour? How do I get those logs? Feels like they would be incredibly useful here... In the meantime, is there a way to view the logs that file outputs? |
you should be able to export all needed logs via the UI, tap 3-dot menu at the top right corner on main screen, go to expert settings and then choose last option -> log export. |
As I said, I did that, and I did get a file with a bunch of logs. Sadly none of the relevant logs from the function I mentioned, even the ones in code that had to have run for the UI to look like it did. So either the log levels are wrong and they are not logged to file, or the logs from the initial setup are truncated. BTW, I had to resort to manually transferring contacts, manually export settings and backups from each and every app, and luckily, all relevant apps did have an option - even if I had to fight them at times (the chat transfer of WhatsApp didn't work, and that is the only non-google official option - they don't document transferring files manually and I had to dig deep in reddit to find out how to do it. Even then I'm not sure what exactly did it as I tried a lot). So while I don't need this to work myself anymore, I would really prefer to have an actually reliable form of backup, and this seems to be the only real option that works across devices, sadly, it didn't work for me. If you got any hints or things you want me to try (short of restoring an old backup on my newly set up phone), please say. I do want this to work. |
If you still have the old backups, you could point Seedvault to that location and then select "restore backup". If nothing shows up, export logs right after and cut the logs right before you tapped "restore". Then you can share the logs with us and we can have a look. |
Took a bit since I didn't have access to the SD card until now. Please tell me if there's any sensitive info in there I missed (just truncated so far). |
Trying to migrate apps+data to my new phone, the restore step fails.
regardless which storage location I tried on the target (local phone storage or webDAV via the DAVx5 app, which provided further challenges, see #85 (comment)).
After entering the correct 12-word passphrase that I had used to backup up apps+data on my old phone,
I am stuck with this error:
When I then select "Skip restoring apps", I get
The above error messages are very vague, not giving real info what went wrong why,
so I can only guess what went wrong. I suspect a Seedvault bug.
It turns out that it is there since more than 3 years:
https://www.reddit.com/r/LineageOS/comments/lask4q/no_suitable_backups_found_at_given_location_for/
This makes Seedvault unusable for migrating apps+data to a new phone☹️
The text was updated successfully, but these errors were encountered: