Restores Fail with Warning

Having been using Duplicati for a few weeks I thougght it was time for some test restores (this is only home data).

The system us Unbuntu connected to an Unraid NAS via a mounted file share (NFS).

Backup works fine, but restore failes to restore files (although it says completed).

On one test I was able to succesfully restore by manually chosing a totally different file location but I have not been able to repeat this …

Quite Worried I now have a chunk of Data on B2 that isnt actually able to restore.

“RestoredFiles”: 0,
“SizeOfRestoredFiles”: 0,
“RestoredFolders”: 0,
“RestoredSymlinks”: 0,
“PatchedFiles”: 0,
“DeletedFiles”: 0,
“DeletedFolders”: 0,
“DeletedSymlinks”: 0,
“MainOperation”: “Restore”,
“RecreateDatabaseResults”: null,
“ParsedResult”: “Warning”,
“Version”: “ (”,
“EndTime”: “2019-12-30T22:16:04.809228Z”,
“BeginTime”: “2019-12-30T22:15:19.407892Z”,
“Duration”: “00:00:45.4013360”,
“MessagesActualLength”: 7,
“WarningsActualLength”: 1,
“ErrorsActualLength”: 0,
“Messages”: [
“2019-12-30 22:15:19 +00 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Restore has started”,
“2019-12-30 22:15:19 +00 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started: ()”,
“2019-12-30 22:15:45 +00 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed: (7.91 KB)”,
“2019-12-30 22:15:46 +00 - [Information-Duplicati.Library.Main.Database.LocalRestoreDatabase-SearchingBackup]: Searching backup 0 (30/12/2019 01:15:00) …”,
“2019-12-30 22:15:46 +00 - [Information-Duplicati.Library.Main.Operation.RestoreHandler-RemoteFileCount]: 1 remote files are required to restore”,
“2019-12-30 22:15:46 +00 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Started: (49.92 MB)”,
“2019-12-30 22:16:04 +00 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Completed: (49.92 MB)”
“Warnings”: [
“2019-12-30 22:16:04 +00 - [Warning-Duplicati.Library.Main.Operation.RestoreHandler-NoFilesRestored]: Restore completed without errors but no files were restored”
“Errors”: ,
“BackendStatistics”: {
“RemoteCalls”: 2,
“BytesUploaded”: 0,
“BytesDownloaded”: 52347917,
“FilesUploaded”: 0,
“FilesDownloaded”: 1,
“FilesDeleted”: 0,
“FoldersCreated”: 0,
“RetryAttempts”: 0,
“UnknownFileSize”: 0,
“UnknownFileCount”: 1,
“KnownFileCount”: 8101,
“KnownFileSize”: 211872439153,
“LastBackupDate”: “2019-12-30T01:15:00+00:00”,
“BackupListCount”: 7,
“TotalQuotaSpace”: 0,
“FreeQuotaSpace”: 0,
“AssignedQuotaSpace”: -1,
“ReportedQuotaError”: false,
“ReportedQuotaWarning”: false,
“MainOperation”: “Restore”,
“ParsedResult”: “Success”,
“Version”: “ (”,
“EndTime”: “0001-01-01T00:00:00”,
“BeginTime”: “2019-12-30T22:15:19.407897Z”,
“Duration”: “00:00:00”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null

Actually let me edit that !!

Seems this only happens when the files still exist… if I manually delete them then they come back on restore.

Does the software know the file is exactly the same and there skip the restore ? As was wondering about corrupt files I would want to overwrite ?

Welcome to the forum @glenfosteruk

As far as I know, and if you find any gaps, it’s probably worth filing an issue so that it can be discussed. See explanation below, and the extent to which block-by-block and total-files hashes are also checked.

Whether corrupt, or just a version you’d rather replace with an older one, restore should do as you ask. Note that there’s a button, unchecked by default, to say whether to overwrite a file if restore is different. Some people may want to keep both versions for that case, and Duplicati will do some name changing.

Restore, like backup, deals with blocks. Restore fetches blocks from original files if possible, or remote otherwise. To do the most thorough restore test, use –no-local-blocks=true to make sure all are remote.

Restoring with direct restore should also achieve this, and also tests that needed database can be built even though it’s just a partial temporary database, so not as comprehensive as the backup’s Database.

If you would like to watch blocks being laid down, logging can show that. Verbose level gets things like:

2019-12-30 17:32:24 -05 - [Verbose-Duplicati.Library.Main.Operation.RestoreHandler-PatchingFile]: Patching file with remote data: C:\Users\XXX\Documents\short.txt

If that’s not enough, e.g. at About --> Show log --> Live, then –log-file set to –log-file-log-level=profiling or custom –log-file-log-filter may show more. If you do lots of files, you’ll see them show up, then fill up.

Brilliant answer thanks.

As a Crashplan refugee and a user of Veeam in the Enterprise, really appreciate what the team are doing here. The ability to backup anything anywhere is priceless. (Backblaze backend here and been flawless so far).

1 Like