The database was attempted repaired, but the repair did not complete

Today I found Duplicati reporting the following error:

“The database was attempted repaired, but the repair did not complete. This database may be incomplete and the backup process cannot continue. You may delete the local database and attempt to repair it again.”

This has occurred out of the blue. The log for the backup task is empty, but the system log (About->Show Log->Stored) shows the following:

Duplicati.Library.Interface.UserInformationException: The database was attempted repaired, but the repair did not complete. This database may be incomplete and the backup process cannot continue. You may delete the local database and attempt to repair it again. at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00122] in :0 at CoCoL.ChannelExtensions.WaitForTaskOrThrow (System.Threading.Tasks.Task task) [0x00050] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 at Duplicati.Library.Main.Operation.BackupHandler.Run (System.String sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00009] in :0 at Duplicati.Library.Main.Controller+<>c__DisplayClass14_0.b__0 (Duplicati.Library.Main.BackupResults result) [0x0004b] in :0 at Duplicati.Library.Main.Controller.RunAction[T] (T result, System.String& paths, Duplicati.Library.Utility.IFilter& filter, System.Action`1[T] method) [0x0026f] in :0 at Duplicati.Library.Main.Controller.Backup (System.String inputsources, Duplicati.Library.Utility.IFilter filter) [0x00074] in :0 at Duplicati.Server.Runner.Run (Duplicati.Server.Runner+IRunnerData data, System.Boolean fromQueue) [0x00349] in <156011ea63b34859b4073abdbf0b1573>:0

Running “Repair” on the database worked, and the backup task continued to run daily for the next week.

However, about a week (or two) later the database has failed again. Note that this is the automatic message that appears, which suggests that Duplicati attempts to automatically repair the database. Here is the latest error, which looks very similar:

Duplicati.Library.Interface.UserInformationException: The database was attempted repaired, but the repair did not complete. This database may be incomplete and the backup process cannot continue. You may delete the local database and attempt to repair it again. at Duplicati.Library.Main.Operation.BackupHandler.RunAsync (System.String sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00122] in :0 at CoCoL.ChannelExtensions.WaitForTaskOrThrow (System.Threading.Tasks.Task task) [0x00050] in <9a758ff4db6c48d6b3d4d0e5c2adf6d1>:0 at Duplicati.Library.Main.Operation.BackupHandler.Run (System.String sources, Duplicati.Library.Utility.IFilter filter, System.Threading.CancellationToken token) [0x00009] in :0 at Duplicati.Library.Main.Controller+<>c__DisplayClass14_0.b__0 (Duplicati.Library.Main.BackupResults result) [0x0004b] in :0 at Duplicati.Library.Main.Controller.RunAction[T] (T result, System.String& paths, Duplicati.Library.Utility.IFilter& filter, System.Action`1[T] method) [0x0026f] in :0 at Duplicati.Library.Main.Controller.Backup (System.String inputsources, Duplicati.Library.Utility.IFilter filter) [0x00074] in :0 at Duplicati.Server.Runner.Run (Duplicati.Server.Runner+IRunnerData data, System.Boolean fromQueue) [0x00349] in <156011ea63b34859b4073abdbf0b1573>:0

Settings that may be relevant are:

auto-cleanup ON
auto-vacuum ON
use-block-cache ON
rebuild-missing-dblock-files ON

Client is 2.0.6.3_beta_2021-06-17 running on Linux Mint 20.2 MATE. Target is an S3 compatible server running Minio, but I have seen this error on folder targets as well so I don’t think the type of target is significant, but of course I don’t really know.

Any thoughts on this?

This runs repair before actual backup, if things look wrong. Of course why they look wrong is unclear.

Good job on finding where backup error logs confusingly go . I’m not sure the full detail is there though.

About → Show log → Live → Warning during automatic or manual repair might show more information. You might need to click on lines to expand them. I’m not sure why the manual repair fixed issues that an automatic repair couldn’t. If you want to keep auto-cleanup and run for awhile, I suppose you can set up
log-file=<path> log-file-log-level=Warning because you won’t want to watch the live log for a few weeks.

It might be necessary to increase the log level to something like Retry to see if perhaps network errors
correlate with the issue arising. When things are working you can also look at a job log Complete log
to see if RetryAttempts is non-zero but not yet getting in trouble based on the number-of-retries value.

Assuming it’s a reliable local folder, it would probably not be seeing errors and retries. Does the system remain up for long periods of time, or is it sometimes powered off, potentially in the middle of a backup?