ErrorID: MissingRemoteFiles -> The operation Repair has failed

Version: 2.1.0.119_canary_2025-05-29
Client: Win11 23H2

Since December 2024, I haven’t been able to save backups via WebDAV. Duplicati simply no longer recognizes remote files via WebDAV.
I have deleted everything and set it up again → failed.
I installed the latest beta version → failed.
I set up a new vPC Windows 11 PC 24H2 → failed.

I’m at the end of my options. It seems that Duplicati can no longer read the files it has itself stored there in the same Backup Job, but the files are in the Webdav folder still there (below).
All my troubleshooting measures go in circles. Does anyone have any ideas?


New task at the first try:

            {
  "DeletedFiles": 0,
  "DeletedFolders": 0,
  "ModifiedFiles": 0,
  "ExaminedFiles": 1,
  "OpenedFiles": 1,
  "AddedFiles": 1,
  "SizeOfModifiedFiles": 0,
  "SizeOfAddedFiles": 0,
  "SizeOfExaminedFiles": 0,
  "SizeOfOpenedFiles": 0,
  "NotProcessedFiles": 0,
  "AddedFolders": 1,
  "TooLargeFiles": 0,
  "FilesWithError": 0,
  "TimestampChangedFiles": 0,
  "ModifiedFolders": 0,
  "ModifiedSymlinks": 0,
  "AddedSymlinks": 0,
  "DeletedSymlinks": 0,
  "PartialBackup": false,
  "Dryrun": false,
  "MainOperation": "Backup",
  "CompactResults": {
    "DeletedFileCount": 0,
    "DownloadedFileCount": 0,
    "UploadedFileCount": 0,
    "DeletedFileSize": 0,
    "DownloadedFileSize": 0,
    "UploadedFileSize": 0,
    "Dryrun": false,
    "VacuumResults": null,
    "MainOperation": "Compact",
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.1.0.119 (2.1.0.119_canary_2025-05-29)",
    "EndTime": "2025-06-08T10:07:50.5002812Z",
    "BeginTime": "2025-06-08T10:07:50.4985445Z",
    "Duration": "00:00:00.0017367",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null,
    "BackendStatistics": {
      "RemoteCalls": 5,
      "BytesUploaded": 2159,
      "BytesDownloaded": 0,
      "FilesUploaded": 3,
      "FilesDownloaded": 0,
      "FilesDeleted": 0,
      "FoldersCreated": 0,
      "RetryAttempts": 0,
      "UnknownFileSize": 0,
      "UnknownFileCount": 0,
      "KnownFileCount": 0,
      "KnownFileSize": 0,
      "KnownFilesets": 0,
      "LastBackupDate": "0001-01-01T00:00:00",
      "BackupListCount": 1,
      "TotalQuotaSpace": 0,
      "FreeQuotaSpace": 0,
      "AssignedQuotaSpace": -1,
      "ReportedQuotaError": false,
      "ReportedQuotaWarning": false,
      "MainOperation": "Backup",
      "ParsedResult": "Success",
      "Interrupted": false,
      "Version": "2.1.0.119 (2.1.0.119_canary_2025-05-29)",
      "EndTime": "0001-01-01T00:00:00",
      "BeginTime": "2025-06-08T10:07:48.5407286Z",
      "Duration": "00:00:00",
      "MessagesActualLength": 0,
      "WarningsActualLength": 0,
      "ErrorsActualLength": 0,
      "Messages": null,
      "Warnings": null,
      "Errors": null
    }
  },
  "VacuumResults": null,
  "DeleteResults": null,
  "RepairResults": null,
  "TestResults": null,
  "ParsedResult": "Fatal",
  "Interrupted": false,
  "Version": "2.1.0.119 (2.1.0.119_canary_2025-05-29)",
  "EndTime": "2025-06-08T10:07:50.8695424Z",
  "BeginTime": "2025-06-08T10:07:48.5407245Z",
  "Duration": "00:00:02.3288179",
  "MessagesActualLength": 12,
  "WarningsActualLength": 3,
  "ErrorsActualLength": 3,
  "Messages": [
    "2025-06-08 12:07:48 +02 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: Die Operation Backup wurde gestartet",
    "2025-06-08 12:07:48 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started:  ()",
    "2025-06-08 12:07:49 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed:  ()",
    "2025-06-08 12:07:49 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-baf475b9a55864e1d8bfd065877f556f6.dblock.zip (782 Bytes)",
    "2025-06-08 12:07:49 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-baf475b9a55864e1d8bfd065877f556f6.dblock.zip (782 Bytes)",
    "2025-06-08 12:07:49 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-i58dfeb930c1d4b60aafe8c1bce0463d1.dindex.zip (623 Bytes)",
    "2025-06-08 12:07:50 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-i58dfeb930c1d4b60aafe8c1bce0463d1.dindex.zip (623 Bytes)",
    "2025-06-08 12:07:50 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-20250608T100748Z.dlist.zip (754 Bytes)",
    "2025-06-08 12:07:50 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-20250608T100748Z.dlist.zip (754 Bytes)",
    "2025-06-08 12:07:50 +02 - [Information-Duplicati.Library.Main.Database.LocalDeleteDatabase-CompactReason]: Compacting not required",
    "2025-06-08 12:07:50 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started:  ()",
    "2025-06-08 12:07:50 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed:  ()"
  ],
  "Warnings": [
    "2025-06-08 12:07:50 +02 - [Warning-Duplicati.Library.Main.Operation.FilelistProcessor-MissingFile]: Missing file: duplicati-20250608T100748Z.dlist.zip",
    "2025-06-08 12:07:50 +02 - [Warning-Duplicati.Library.Main.Operation.FilelistProcessor-MissingFile]: Missing file: duplicati-baf475b9a55864e1d8bfd065877f556f6.dblock.zip",
    "2025-06-08 12:07:50 +02 - [Warning-Duplicati.Library.Main.Operation.FilelistProcessor-MissingFile]: Missing file: duplicati-i58dfeb930c1d4b60aafe8c1bce0463d1.dindex.zip"
  ],
  "Errors": [
    "2025-06-08 12:07:50 +02 - [Error-Duplicati.Library.Main.Operation.FilelistProcessor-MissingRemoteFiles]: Found 3 files that are missing from the remote storage, please run repair",
    "2025-06-08 12:07:50 +02 - [Error-Duplicati.Library.Main.Operation.BackupHandler-FatalError]: Fatal error\r\nRemoteListVerificationException: Found 3 files that are missing from the remote storage, please run repair",
    "2025-06-08 12:07:50 +02 - [Error-Duplicati.Library.Main.Controller-FailedOperation]: The operation Backup has failed\r\nRemoteListVerificationException: Found 3 files that are missing from the remote storage, please run repair"
  ],
  "BackendStatistics": {
    "RemoteCalls": 5,
    "BytesUploaded": 2159,
    "BytesDownloaded": 0,
    "FilesUploaded": 3,
    "FilesDownloaded": 0,
    "FilesDeleted": 0,
    "FoldersCreated": 0,
    "RetryAttempts": 0,
    "UnknownFileSize": 0,
    "UnknownFileCount": 0,
    "KnownFileCount": 0,
    "KnownFileSize": 0,
    "KnownFilesets": 0,
    "LastBackupDate": "0001-01-01T00:00:00",
    "BackupListCount": 1,
    "TotalQuotaSpace": 0,
    "FreeQuotaSpace": 0,
    "AssignedQuotaSpace": -1,
    "ReportedQuotaError": false,
    "ReportedQuotaWarning": false,
    "MainOperation": "Backup",
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.1.0.119 (2.1.0.119_canary_2025-05-29)",
    "EndTime": "0001-01-01T00:00:00",
    "BeginTime": "2025-06-08T10:07:48.5407286Z",
    "Duration": "00:00:00",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null
  }
}

DB repair:

           {
  "MainOperation": "Repair",
  "RecreateDatabaseResults": null,
  "ParsedResult": "Fatal",
  "Interrupted": false,
  "Version": "2.1.0.119 (2.1.0.119_canary_2025-05-29)",
  "EndTime": "2025-06-08T10:07:56.6531874Z",
  "BeginTime": "2025-06-08T10:07:56.3932509Z",
  "Duration": "00:00:00.2599365",
  "MessagesActualLength": 3,
  "WarningsActualLength": 0,
  "ErrorsActualLength": 1,
  "Messages": [
    "2025-06-08 12:07:56 +02 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: Die Operation Repair wurde gestartet",
    "2025-06-08 12:07:56 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started:  ()",
    "2025-06-08 12:07:56 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed:  ()"
  ],
  "Warnings": [],
  "Errors": [
    "2025-06-08 12:07:56 +02 - [Error-Duplicati.Library.Main.Controller-FailedOperation]: The operation Repair has failed\r\nUserInformationException: The backup storage destination is missing data files. You can either enable `--rebuild-missing-dblock-files` or run the purge command to remove these files. The following files are missing: duplicati-baf475b9a55864e1d8bfd065877f556f6.dblock.zip"
  ],
  "BackendStatistics": {
    "RemoteCalls": 1,
    "BytesUploaded": 0,
    "BytesDownloaded": 0,
    "FilesUploaded": 0,
    "FilesDownloaded": 0,
    "FilesDeleted": 0,
    "FoldersCreated": 0,
    "RetryAttempts": 0,
    "UnknownFileSize": 0,
    "UnknownFileCount": 0,
    "KnownFileCount": 0,
    "KnownFileSize": 0,
    "KnownFilesets": 0,
    "LastBackupDate": "0001-01-01T00:00:00",
    "BackupListCount": 1,
    "TotalQuotaSpace": 0,
    "FreeQuotaSpace": 0,
    "AssignedQuotaSpace": -1,
    "ReportedQuotaError": false,
    "ReportedQuotaWarning": false,
    "MainOperation": "Repair",
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.1.0.119 (2.1.0.119_canary_2025-05-29)",
    "EndTime": "0001-01-01T00:00:00",
    "BeginTime": "2025-06-08T10:07:56.3932548Z",
    "Duration": "00:00:00",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null
  }
}

Rebuild:

 Backup started at 08.06.2025 12:11:53
Checking remote backup ...
  Listing remote folder ...
Missing file: duplicati-20250608T100748Z.dlist.zip
Missing file: duplicati-baf475b9a55864e1d8bfd065877f556f6.dblock.zip
Missing file: duplicati-i58dfeb930c1d4b60aafe8c1bce0463d1.dindex.zip
The operation Backup has failed => Found 3 files that are missing from the remote storage, please run repair

ErrorID: MissingRemoteFiles
Found 3 files that are missing from the remote storage, please run repair
Return code: 100

Windows Webdav folder view:

Screenshot-D

Welcome to the forum @supdown

You can do Export As Command-line and grab the target URL to use with

BackendTool list <URL>

WebDAV Destination says what URL should look like. You can try tweaking.
Sometimes problems can occur from extra slashes or wrong slash direction.

Any idea of Duplicati version when it worked? Any other changes known since then?
Can you say what WebDAV server this is? It looks like some WebDAV is now tested.

Thanks for your feedback.

The setup of the WebDAV task has never shown any errors when I use “Test Connection.”

From my side, I haven’t made any changes since December 24. I also reinstalled the Duplicati configuration from my backup, but the same error persists or an older Duplicati version. I have also tested other services like S3 and Filen without any problems. Therefore, I can’t find any local error on my side.

The first backup task uploads the files, but after that, all subsequent tasks fail with the error. There are no files on the WebDAV server where it uploaded a few seconds earlier. I also found a troubleshooting command (below) which shows the same behavior. This indicates that upload and download are possible, but Duplicati sees no files and fails to delete the files.

Over CLI the same-> no files

C:\Program Files (x86)\Duplicati 2>Duplicati.CommandLine.BackendTool.exe list webdavs://[cut]
Name    Dir/File        LastChange      Size

C:\Program Files (x86)\Duplicati 2>
C:\Program Files (x86)\Duplicati 2>Duplicati.CommandLine.BackendTester.exe webdavs://[...cut...]
11.06.2025 22:25:37
[22:25:37 440] Starting run no 0
[22:25:43 700] Read Write Timeout set to 60000 ms
[22:25:43 783] Generating file 0 (34.78 MiB)
[22:25:45 179] Generating file 1 (6.23 MiB)
[22:25:45 423] Generating file 2 (43.42 MiB)
[22:25:46 804] Generating file 3 (45.66 MiB)
[22:25:48 505] Generating file 4 (32.61 MiB)
[22:25:49 595] Generating file 5 (45.05 MiB)
[22:25:50 802] Generating file 6 (27.69 MiB)
[22:25:51 503] Generating file 7 (30.96 MiB)
[22:25:52 278] Generating file 8 (14.32 MiB)
[22:25:52 671] Generating file 9 (5.80 MiB)
[22:25:52 852] Uploading wrong files ...
[22:25:52 853] Generating file 10 (1.63 KiB)
[22:25:52 893] Uploading file 0, 1.63 KiB ...  done! in 421 ms (~3.86 KiB/s)
[22:25:53 317] Uploading file 0, 1.63 KiB ...  done! in 850 ms (~1.91 KiB/s)
[22:25:54 168] Uploading file 9, 1.63 KiB ...  done! in 255 ms (~6.36 KiB/s)
[22:25:54 428] Uploading files ...
[22:25:54 430] Uploading file 0, 34.78 MiB ...  done! in 4973 ms (~6.99 MiB/s)
[22:25:59 406] Uploading file 1, 6.23 MiB ...  done! in 993 ms (~6.27 MiB/s)
[22:26:00 401] Uploading file 2, 43.42 MiB ...  done! in 4912 ms (~8.84 MiB/s)
[22:26:05 314] Uploading file 3, 45.66 MiB ...  done! in 4762 ms (~9.59 MiB/s)
[22:26:10 100] Uploading file 4, 32.61 MiB ...  done! in 4437 ms (~7.35 MiB/s)
[22:26:14 539] Uploading file 5, 45.05 MiB ...  done! in 4744 ms (~9.50 MiB/s)
[22:26:19 291] Uploading file 6, 27.69 MiB ...  done! in 3450 ms (~8.03 MiB/s)
[22:26:22 746] Uploading file 7, 30.96 MiB ...  done! in 3626 ms (~8.54 MiB/s)
[22:26:26 375] Uploading file 8, 14.32 MiB ...  done! in 2053 ms (~6.97 MiB/s)
[22:26:28 429] Uploading file 9, 5.80 MiB ...  done! in 911 ms (~6.36 MiB/s)
[22:26:29 341] Verifying file list ...
[22:26:29 586] *** File 0 with name zIQ5hBz7r9QX83Nn2FuD1l7DgHUh4eDmKnVjWA69muhGX5r1yB8pF was uploaded but not found afterwards
[22:26:29 587] *** File 1 with name LqUIWZdITGwR3I7YTYcEyDBCeD1dPjwSyQR3V6JJQICrKLzgsBnzSeB3uHVhrPj was uploaded but not found afterwards
[22:26:29 587] *** File 2 with name 9DzIAPFXzRo5dhwsmsg3PV5XEvhGAzb3ZwD3ygTifiZTzVslQVaddCxA7Z7a was uploaded but not found afterwards
[22:26:29 587] *** File 3 with name hWeHdLaNwynXX6Ux1KuDSOaYlFnBtcb7FilAZsZhE952pVO5lPsE2hpHhT was uploaded but not found afterwards
[22:26:29 587] *** File 4 with name 62fpE4TvVv1Aionr was uploaded but not found afterwards
[22:26:29 587] *** File 5 with name JiYMrRI3bP3SFTfUJbUh2YyZP3bxpuzB was uploaded but not found afterwards
[22:26:29 587] *** File 6 with name rk62hFYsylfIEH14dcX5x3b was uploaded but not found afterwards
[22:26:29 587] *** File 7 with name Uq2JVYstrPpS1nrGPwSHr26 was uploaded but not found afterwards
[22:26:29 587] *** File 8 with name mwNLw2Uelg6LkXgmJ2QMtxshVmWoGVuJMNGeDGYHj1gK2SPaIzQRDBPGYiZ was uploaded but not found afterwards
[22:26:29 587] *** File 9 with name VRHg3eGZDs1Fo was uploaded but not found afterwards
[22:26:29 587] Downloading files
[22:26:29 589] Downloading file 0 ...  done in 6649 ms (~5.23 MiB/s)
[22:26:36 239] Checking hash ... done
[22:26:36 933] Downloading file 1 ...  done in 1115 ms (~5.59 MiB/s)
[22:26:38 051] Checking hash ... done
[22:26:38 170] Downloading file 2 ...  done in 27375 ms (~1.59 MiB/s)
[22:27:05 546] Checking hash ... done
[22:27:06 454] Downloading file 3 ...  done in 9233 ms (~4.94 MiB/s)
[22:27:15 688] Checking hash ... done
[22:27:16 683] Downloading file 4 ...  done in 4621 ms (~7.06 MiB/s)
[22:27:21 304] Checking hash ... done
[22:27:21 912] Downloading file 5 ...  done in 11083 ms (~4.06 MiB/s)
[22:27:32 997] Checking hash ... done
[22:27:33 966] Downloading file 6 ...  done in 4452 ms (~6.22 MiB/s)
[22:27:38 420] Checking hash ... done
[22:27:38 944] Downloading file 7 ...  done in 8351 ms (~3.71 MiB/s)
[22:27:47 296] Checking hash ... done
[22:27:47 906] Downloading file 8 ...  done in 4060 ms (~3.53 MiB/s)
[22:27:51 968] Checking hash ... done
[22:27:52 249] Downloading file 9 ...  done in 954 ms (~6.07 MiB/s)
[22:27:53 206] Checking hash ... done
[22:27:53 334] Deleting files...
[22:27:53 339] Deleting file 0
[22:27:53 614] Deleting file 1
[22:27:53 981] Deleting file 2
[22:27:54 310] Deleting file 3
[22:27:54 540] Deleting file 4
[22:27:54 825] Deleting file 5
[22:27:55 080] Deleting file 6
[22:27:55 551] Deleting file 7
[22:27:55 818] Deleting file 8
[22:27:56 079] Deleting file 9
[22:27:56 675] Checking retrieval of non-existent file...
[22:27:56 988] Caught expected FileMissingException
[22:27:57 055] Checking DNS names used by this backend...
[...cut...]
11.06.2025 22:27:57

It doesn’t mean much. It’s currently a connectivity test, not any sort of detailed test of files.

Is that a standalone statement? In your prior post, you showed Windows seeing files.
If you meant there “are files” but Duplicati doesn’t see files, that’s a different situation.

The cut instead of redaction makes it hard to review the format. Make sure it looks right.

Seeing BackendTester also fail is worrying, but could potentially also be a URL problem.

Going back to BackendTool, you can keep tweaking URL to see if anything ever returns.
For example, if you are using a folder level, see if you can list anything at higher level.
That will help determine if the list is somehow looking at an empty spot or totally dead.

Is the WebDAV server something that might have logs that you can look at for any clues?

Actually “Test connection” got better recently. At least one your results used 2.1.0.119.

v2.1.0.119_canary_2025-05-29

Better backend Test

The test feature has been updated to now check for write permissions, instead of just listing the remote folder.
For ngclient, the Test check now uses this extended check to inform the user if there are files in the destination folder.
This shows a warning if creating a new backup pointing to a folder with existing data, and a warning if attempting to restore from a folder with no files.
If the write part fails for a test during the restore flow, this is not treated as an error in ngclient.

and I’m not sure of the test details, and how it would display an upload that disappears.

EDIT 1:

The word “ngclient” refers to “Use new UI” (which is still pretty buggy). I don’t know if old “ngax” UI was updated, because it’s not said. I suppose I could watch a server with logs.

@ts678
I don’t think the URL is wrong because the files will upload, but after all, other tasks will fail/stop because, as the messages indicate, there are no files in the remote backup space.

Only Duplicati say there is no files at the Webdav Server. When I check the Webdav directory/folder over a Internet Browser session and also mound the Webdav in Win11 I can see exactly all files. Where Duplicati say ther is notghing, because the list command show no files.

I don’t have root access to the WebDAV server.

Historically, that’s not proof of a correct URL, for example see:

Unable to backup after upgrade to 2.1.0.4_stable

where upload works but list doesn’t. It looks like code fix caused compatibility problems.

WebDAV list on Duplicati 2.1.0.5 gives 405, but works with 2.1.0.4 #6015

Based on the clues from #6029 I think the problem is that 2.1.0.4 had a bug that would remove a slash.

Warn on leading slashes for some providers #187 tries to stop people from inviting trouble, however it’s in the new UI which is out for Canary test. Bottom line is URLs can be trouble.

Suggestion remains to check URL and test variations if possible. Info on WebDAV server is potentially helpful, as we’re not hearing about this type of problem from other users AFAIK.

You can also do extended testing with BackendTool to try to find out what works or doesn’t.

If the WebDAV server is safe to use with unencrypted HTTP, looking at its traffic might help.

Possibly the developer who worked on previous URL or WebDAV problems will have ideas.

This one explains quite clearly what the problem is. The LIST operation fails to recognize any files on the destination. You can see that Duplicati can upload, download and delete the files, just never see them when listing.

This is most likely a change somewhere in how the listing is returned. WebDAV is returning an XML document with the contents but something has changed in the returned document so it is no longer matching.

Unfortunately, we removed the propfind debug code recently, so there is no great way to get the response.

Can you perhaps try with cURL:

curl -u username:password -X PROPFIND "https://webdav.example.com/folder/" \
  -H "Depth: 1" \
  -H "Content-Type: text/xml" \
  --data ""

This should return the XML document that Duplicati gets. If you can share that doc, maybe I can figure out what is going on.

If that command returns nothing, then try this:

curl -u username:password -X PROPFIND "https://webdav.example.com/folder/" \
  -H "Depth: 1" \
  -H "Content-Type: text/xml" \
  --data '<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
  <D:allprop/>
</D:propfind>'

According to the WebDAV standard they should be equivalent, but some servers differ.

I can’t filter the output, so I send a message to you.