Lost a hard drive and restoring data from duplicati S3 backups using the “direct restoration” process. Going well except for one backup for which I’m getting a worrisome “Failed to decrypt data (invalid passphrase?): Invalid password or corrupted data” error. I was surprised to encounter this problem as I had saved the details for each backup in a password manager and with the exception of 1 out of 4 backups, the approach supported the recovery of 3. Yes, it’s possible that I saved an incorrect passphrase for one of them and I regret not testing restoration capabilities a long time ago but I’m still thinking that I have the right passphrase that was used initially in the job setup.
Here’s where the request for help comes in: The passphrase had at least two “$” (dollar sign) characters in it and I’m wondering if that may be at the root of the problem I’m having. I spent some time searching for passphrase requirements that might include forbidden characters but didn’t come across them and apologizes in advance if I missed something obvious.
Are there passphrase requirements available somewhere? If the dollar signs are causing issues, is there a work around to get the backup files decrypted and restored?
Sincere thanks in advance for any advice made available. I’ve included the log file error message for the error here and if there’s other information that I can provide to shed proper light on the issue, please let me know:
Feb 1, 2022 3:54 PM: The operation List has failed with error: Failed to decrypt data (invalid passphrase?): Invalid password or corrupted data
{"ClassName":"System.Security.Cryptography.CryptographicException",
"Message":"Failed to decrypt data (invalid passphrase?): Invalid password or corrupted data",
"Data":null,
"InnerException":{"ClassName":"SharpAESCrypt.SharpAESCrypt+WrongPasswordException",
"Message":"Invalid password or corrupted data",
"Data":null,
"InnerException":null,
"HelpURL":null,
"StackTraceString":" at SharpAESCrypt.SharpAESCrypt.ReadEncryptionHeader(String password, Boolean skipFileSizeCheck)\r\n at SharpAESCrypt.SharpAESCrypt..ctor(String password, Stream stream, OperationMode mode, Boolean skipFileSizeCheck)\r\n at Duplicati.Library.Encryption.AESEncryption.Decrypt(Stream input)\r\n at Duplicati.Library.Encryption.EncryptionBase.Decrypt(Stream input, Stream output)",
"RemoteStackTraceString":null,
"RemoteStackIndex":0,
"ExceptionMethod":"8\nReadEncryptionHeader\nSharpAESCrypt, Version=1.3.3.0, Culture=neutral, PublicKeyToken=null\nSharpAESCrypt.SharpAESCrypt\nVoid ReadEncryptionHeader(System.String, Boolean)",
"HResult":-2146233296,
"Source":"SharpAESCrypt",
"WatsonBuckets":null
},
"HelpURL":null,
"StackTraceString":" at Duplicati.Library.Main.AsyncDownloader.AsyncDownloaderEnumerator.AsyncDownloadedFile.get_TempFile()\r\n at Duplicati.Library.Main.Operation.ListFilesHandler.CreateResultSequence(IEnumerable`1 filteredList, BackendManager backendManager, Options options)\r\n at Duplicati.Library.Main.Operation.ListFilesHandler.Run(IEnumerable`1 filterstrings, IFilter compositefilter)\r\n at Duplicati.Library.Main.Controller.RunAction[T](T result, String[]& paths, IFilter& filter, Action`1 method)\r\n at Duplicati.Library.Main.Controller.List(IEnumerable`1 filterstrings, IFilter filter)\r\n at Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)\r\n at Duplicati.Server.WebServer.RESTMethods.Backup.ListFileSets(IBackup backup, RequestInfo info)\r\n at Duplicati.Server.WebServer.RESTHandler.DoProcess(RequestInfo info, String method, String module, String key)",
"RemoteStackTraceString":null,
"RemoteStackIndex":0,
"ExceptionMethod":"8\nget_TempFile\nDuplicati.Library.Main, Version=2.0.6.3, Culture=neutral, PublicKeyToken=null\nDuplicati.Library.Main.AsyncDownloader+AsyncDownloaderEnumerator+AsyncDownloadedFile\nDuplicati.Library.Utility.TempFile get_TempFile()",
"HResult":-2146233296,
"Source":"Duplicati.Library.Main",
"WatsonBuckets":null
}