SQLite Error 19: NOT NULL constraint failed in 2.3.0.3

Since I upgraded to 2.3.0, the backup started to fail with the following error:

2026-06-17 08:49:25 +02 - [Error-Duplicati.Library.Main.Operation.TestHandler-RemoteFileProcessingFailed]: Failed to process file duplicati-20260516T210001Z.dlist.zip.aes
SqliteException: SQLite Error 19: ‘NOT NULL constraint failed: Filelist-0C4236A5FAAC234481B0BF505FDDAB8B.Metahash’.

Failure happens about 20% of the time, while more often a successful backup was made. The error persisted after updating to the now latest version 2.3.0.3.

The full error is the following:

2026-06-17 08:49:25 +02 - [Error-Duplicati.Library.Main.Operation.TestHandler-RemoteFileProcessingFailed]: Failed to process file duplicati-20260516T210001Z.dlist.zip.aes
SqliteException: SQLite Error 19: ‘NOT NULL constraint failed: Filelist-0C4236A5FAAC234481B0BF505FDDAB8B.Metahash’.

2026-06-17 08:49:30 +02 - [Error-Duplicati.Library.Main.Operation.TestHandler-Test results]: Verified 3 remote files with 1 problem(s)

And the complete log (if that’s of any help):

{
“DeletedFiles”: 15,
“DeletedFolders”: 0,
“ModifiedFiles”: 68,
“ExaminedFiles”: 12710,
“OpenedFiles”: 82,
“AddedFiles”: 14,
“SizeOfModifiedFiles”: 17129183,
“SizeOfAddedFiles”: 55807474,
“SizeOfExaminedFiles”: 2308484882,
“SizeOfOpenedFiles”: 73167395,
“NotProcessedFiles”: 0,
“AddedFolders”: 0,
“TooLargeFiles”: 0,
“FilesWithError”: 0,
“TimestampChangedFiles”: 0,
“ModifiedFolders”: 10,
“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.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “2026-06-17T06:49:22.4987324Z”,
“BeginTime”: “2026-06-17T06:49:20.8550819Z”,
“Duration”: “00:00:01.6436505”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null,
“BackendStatistics”: {
“RemoteCalls”: 11,
“BytesUploaded”: 46781175,
“BytesDownloaded”: 50780887,
“FilesUploaded”: 3,
“FilesDownloaded”: 3,
“FilesDeleted”: 1,
“FoldersCreated”: 0,
“RetryAttempts”: 0,
“UnknownFileSize”: 0,
“UnknownFileCount”: 0,
“KnownFileCount”: 621,
“KnownFileSize”: 8601792121,
“KnownFilesets”: 217,
“LastBackupDate”: “2026-06-17T08:48:26+02:00”,
“BackupListCount”: 217,
“TotalQuotaSpace”: 1099511627776,
“FreeQuotaSpace”: 1077380605393,
“AssignedQuotaSpace”: -1,
“ReportedQuotaError”: false,
“ReportedQuotaWarning”: false,
“MainOperation”: “Backup”,
“ParsedResult”: “Success”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “0001-01-01T00:00:00”,
“BeginTime”: “2026-06-17T06:48:25.9041135Z”,
“Duration”: “00:00:00”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null
}
},
“VacuumResults”: null,
“DeleteResults”: {
“DeletedSetsActualLength”: 1,
“DeletedSets”: [
{
“Item1”: 217,
“Item2”: “2026-04-16T20:00:00+02:00”
}
],
“Dryrun”: false,
“MainOperation”: “Delete”,
“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.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “2026-06-17T06:49:22.4987324Z”,
“BeginTime”: “2026-06-17T06:49:20.8550819Z”,
“Duration”: “00:00:01.6436505”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null,
“BackendStatistics”: {
“RemoteCalls”: 11,
“BytesUploaded”: 46781175,
“BytesDownloaded”: 50780887,
“FilesUploaded”: 3,
“FilesDownloaded”: 3,
“FilesDeleted”: 1,
“FoldersCreated”: 0,
“RetryAttempts”: 0,
“UnknownFileSize”: 0,
“UnknownFileCount”: 0,
“KnownFileCount”: 621,
“KnownFileSize”: 8601792121,
“KnownFilesets”: 217,
“LastBackupDate”: “2026-06-17T08:48:26+02:00”,
“BackupListCount”: 217,
“TotalQuotaSpace”: 1099511627776,
“FreeQuotaSpace”: 1077380605393,
“AssignedQuotaSpace”: -1,
“ReportedQuotaError”: false,
“ReportedQuotaWarning”: false,
“MainOperation”: “Backup”,
“ParsedResult”: “Success”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “0001-01-01T00:00:00”,
“BeginTime”: “2026-06-17T06:48:25.9041135Z”,
“Duration”: “00:00:00”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null
}
},
“ParsedResult”: “Success”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “2026-06-17T06:49:22.4988088Z”,
“BeginTime”: “2026-06-17T06:49:16.2799493Z”,
“Duration”: “00:00:06.2188595”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null,
“BackendStatistics”: {
“RemoteCalls”: 11,
“BytesUploaded”: 46781175,
“BytesDownloaded”: 50780887,
“FilesUploaded”: 3,
“FilesDownloaded”: 3,
“FilesDeleted”: 1,
“FoldersCreated”: 0,
“RetryAttempts”: 0,
“UnknownFileSize”: 0,
“UnknownFileCount”: 0,
“KnownFileCount”: 621,
“KnownFileSize”: 8601792121,
“KnownFilesets”: 217,
“LastBackupDate”: “2026-06-17T08:48:26+02:00”,
“BackupListCount”: 217,
“TotalQuotaSpace”: 1099511627776,
“FreeQuotaSpace”: 1077380605393,
“AssignedQuotaSpace”: -1,
“ReportedQuotaError”: false,
“ReportedQuotaWarning”: false,
“MainOperation”: “Backup”,
“ParsedResult”: “Success”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “0001-01-01T00:00:00”,
“BeginTime”: “2026-06-17T06:48:25.9041135Z”,
“Duration”: “00:00:00”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null
}
},
“RepairResults”: null,
“TestResults”: {
“MainOperation”: “Test”,
“VerificationsActualLength”: 3,
“Verifications”: [
{
“Key”: “duplicati-20260516T210001Z.dlist.zip.aes”,
“Value”: [
{
“Key”: “Error”,
“Value”: “SQLite Error 19: ‘NOT NULL constraint failed: Filelist-0C4236A5FAAC234481B0BF505FDDAB8B.Metahash’.”
}
]
},
{
“Key”: “duplicati-i2d2fcc2712d543ad87843039cbf1c90f.dindex.zip.aes”,
“Value”:
},
{
“Key”: “duplicati-b098fa41b95494ae99280cb3ddb83ba5f.dblock.zip.aes”,
“Value”:
}
],
“ParsedResult”: “Success”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “2026-06-17T06:49:30.3506291Z”,
“BeginTime”: “2026-06-17T06:49:25.097918Z”,
“Duration”: “00:00:05.2527111”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null,
“BackendStatistics”: {
“RemoteCalls”: 11,
“BytesUploaded”: 46781175,
“BytesDownloaded”: 50780887,
“FilesUploaded”: 3,
“FilesDownloaded”: 3,
“FilesDeleted”: 1,
“FoldersCreated”: 0,
“RetryAttempts”: 0,
“UnknownFileSize”: 0,
“UnknownFileCount”: 0,
“KnownFileCount”: 621,
“KnownFileSize”: 8601792121,
“KnownFilesets”: 217,
“LastBackupDate”: “2026-06-17T08:48:26+02:00”,
“BackupListCount”: 217,
“TotalQuotaSpace”: 1099511627776,
“FreeQuotaSpace”: 1077380605393,
“AssignedQuotaSpace”: -1,
“ReportedQuotaError”: false,
“ReportedQuotaWarning”: false,
“MainOperation”: “Backup”,
“ParsedResult”: “Success”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “0001-01-01T00:00:00”,
“BeginTime”: “2026-06-17T06:48:25.9041135Z”,
“Duration”: “00:00:00”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null
}
},
“LockResults”: null,
“RemoteSynchronizationResults”: ,
“ParsedResult”: “Error”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “2026-06-17T06:49:30.3826477Z”,
“BeginTime”: “2026-06-17T06:48:25.9038416Z”,
“Duration”: “00:01:04.4788061”,
“MessagesActualLength”: 24,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 2,
“Messages”: [
“2026-06-17 08:48:25 +02 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Backup has started”,
“2026-06-17 08:48:42 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started: ()”,
“2026-06-17 08:48:46 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed: (619 bytes)”,
“2026-06-17 08:48:46 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: QuotaInfo - Started: ()”,
“2026-06-17 08:49:05 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b9abdf1ff656a488ea242bfdc962ba006.dblock.zip.aes (43.25 MiB)”,
“2026-06-17 08:49:14 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-b9abdf1ff656a488ea242bfdc962ba006.dblock.zip.aes (43.25 MiB)”,
“2026-06-17 08:49:14 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-iaf34b05c244a4717a408a11f3c48688a.dindex.zip.aes (13.20 KiB)”,
“2026-06-17 08:49:15 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-iaf34b05c244a4717a408a11f3c48688a.dindex.zip.aes (13.20 KiB)”,
“2026-06-17 08:49:15 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-20260617T064826Z.dlist.zip.aes (1.35 MiB)”,
“2026-06-17 08:49:16 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Completed: duplicati-20260617T064826Z.dlist.zip.aes (1.35 MiB)”,
“2026-06-17 08:49:16 +02 - [Information-Duplicati.Library.Main.Operation.DeleteHandler-DeleteRemoteFileset]: Deleting 1 remote fileset(s) …”,
“2026-06-17 08:49:20 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Delete - Started: duplicati-20260416T180000Z.dlist.zip.aes (1.29 MiB)”,
“2026-06-17 08:49:20 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Delete - Completed: duplicati-20260416T180000Z.dlist.zip.aes (1.29 MiB)”,
“2026-06-17 08:49:20 +02 - [Information-Duplicati.Library.Main.Operation.DeleteHandler-DeleteResults]: Deleted 1 remote fileset(s)”,
“2026-06-17 08:49:22 +02 - [Information-Duplicati.Library.Main.Database.LocalDeleteDatabase-CompactReason]: Compacting not required”,
“2026-06-17 08:49:22 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started: ()”,
“2026-06-17 08:49:24 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed: (621 bytes)”,
“2026-06-17 08:49:24 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: QuotaInfo - Started: ()”,
“2026-06-17 08:49:25 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Started: duplicati-20260516T210001Z.dlist.zip.aes (1.32 MiB)”,
“2026-06-17 08:49:25 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Completed: duplicati-20260516T210001Z.dlist.zip.aes (1.32 MiB)”
],
“Warnings”: ,
“Errors”: [
“2026-06-17 08:49:25 +02 - [Error-Duplicati.Library.Main.Operation.TestHandler-RemoteFileProcessingFailed]: Failed to process file duplicati-20260516T210001Z.dlist.zip.aes\r\nSqliteException: SQLite Error 19: ‘NOT NULL constraint failed: Filelist-0C4236A5FAAC234481B0BF505FDDAB8B.Metahash’.”,
“2026-06-17 08:49:30 +02 - [Error-Duplicati.Library.Main.Operation.TestHandler-Test results]: Verified 3 remote files with 1 problem(s)”
],
“BackendStatistics”: {
“RemoteCalls”: 11,
“BytesUploaded”: 46781175,
“BytesDownloaded”: 50780887,
“FilesUploaded”: 3,
“FilesDownloaded”: 3,
“FilesDeleted”: 1,
“FoldersCreated”: 0,
“RetryAttempts”: 0,
“UnknownFileSize”: 0,
“UnknownFileCount”: 0,
“KnownFileCount”: 621,
“KnownFileSize”: 8601792121,
“KnownFilesets”: 217,
“LastBackupDate”: “2026-06-17T08:48:26+02:00”,
“BackupListCount”: 217,
“TotalQuotaSpace”: 1099511627776,
“FreeQuotaSpace”: 1077380605393,
“AssignedQuotaSpace”: -1,
“ReportedQuotaError”: false,
“ReportedQuotaWarning”: false,
“MainOperation”: “Backup”,
“ParsedResult”: “Success”,
“Interrupted”: false,
“Version”: “2.3.0.3 (2.3.0.3_stable_2026-06-10)”,
“EndTime”: “0001-01-01T00:00:00”,
“BeginTime”: “2026-06-17T06:48:25.9041135Z”,
“Duration”: “00:00:00”,
“MessagesActualLength”: 0,
“WarningsActualLength”: 0,
“ErrorsActualLength”: 0,
“Messages”: null,
“Warnings”: null,
“Errors”: null
}
}

Hi @DupliSteve, welcome to the forum :waving_hand:

If you can reproduce this, can you do the following before you run the backup:

  • Go to About Duplicati
  • Click “Logs”
  • Click “Live”
  • Choose “Log level: Error”
  • Run the backup

You should now see the error being logged. This version of the error has a stack trace attached explaining exactly where the error happened.

If you can provide the stack trace, we can track down the issue much faster.

The error hasn’t occurred since your response. I’ll report back once the error occurs again.

Thanks for reporting. Could be the database has been fixed in the meantime :person_shrugging:

No, unfortunately. The error happened again. But live logging is turned off automatically (after a reboot). But of course, after enabling it, the backup succeeds.

I’ll keep this topic open, because, eventually, I’ll be able to capture the log.