Unable to restore my backup "Duplicati.Library.Interface.DatabaseInconsistencyException: Detected 14 volumes with missing filesets", need to use "--restore-legacy=true"

Hi

My server (ubuntu) crashed last night (SSD drive is dead). I had a spare one nearby, so I’m trying to restore all my services.

Excep .. duplicati won’t restore my data :

    Duplicati.Library.Interface.DatabaseInconsistencyException: Detected 14 volumes with missing filesets
       at Duplicati.Library.Main.Database.LocalDatabase.VerifyConsistencyInner(Int64 blocksize, Int64 hashsize, Boolean verifyfilelists, Boolean laxVerifyForRepair, IDbTransaction transaction)
       at Duplicati.Library.Main.Database.LocalDatabase.VerifyConsistency(Int64 blocksize, Int64 hashsize, Boolean verifyfilelists, IDbTransaction transaction)
       at Duplicati.Library.Main.Operation.RecreateDatabaseHandler.DoRunAsync(IBackendManager backendManager, LocalDatabase dbparent, Boolean updating, IFilter filter, NumberedFilterFilelistDelegate filelistfilter, BlockVolumePostProcessor blockprocessor)
       at Duplicati.Library.Main.Operation.RestoreHandler.RunAsync(String[] paths, IBackendManager backendManager, IFilter filter)
       at Duplicati.Library.Main.Controller.<>c__DisplayClass23_0.<<Restore>b__0>d.MoveNext()
    --- End of stack trace from previous location ---
       at Duplicati.Library.Utility.Utility.Await(Task task)
       at Duplicati.Library.Main.Controller.RunAction[T](T result, String[]& paths, IFilter& filter, Func`3 method)
       at Duplicati.Library.Main.Controller.Restore(String[] paths, IFilter filter)
       at Duplicati.Server.Runner.RunInternal(Connection databaseConnection, EventPollNotify eventPollNotify, INotificationUpdateService notificationUpdateService, IProgressStateProviderService progressStateProviderService, IApplicationSettings applicationSettings, IRunnerData data, Boolean fromQueue)

I tried with : --restore-legacy=true, and it works (Yeah !)

My question is : how can I migrate from this legacy option so restore will works without it ? (i don’t know how long it will be supported, i have a lot of backup on duplicati)

That sounds super odd, both restore methods will use the same validation code before starting the restore.

It should be enough to run the “repair” command, which will detect the issue and correct the database.

We have no plans for removing it any time soon, but maybe we should have named it something like “low-overhead-restore” instead of “legacy”.

1 Like