diff --git a/src/internal/operations/backup.go b/src/internal/operations/backup.go index 00eb82884..7ef7fd505 100644 --- a/src/internal/operations/backup.go +++ b/src/internal/operations/backup.go @@ -344,7 +344,7 @@ func (op *BackupOperation) do( backupID, op.incremental && canUseMetadata && canUsePreviousBackup, op.Errors) - if err != nil { + if err != nil && (deets == nil || deets.Empty()) { return nil, clues.Wrap(err, "persisting collection backups") } diff --git a/src/pkg/backup/details/details.go b/src/pkg/backup/details/details.go index e628ebb21..573f14c62 100644 --- a/src/pkg/backup/details/details.go +++ b/src/pkg/backup/details/details.go @@ -401,6 +401,13 @@ func (b *Builder) Details() *Details { return details } +func (b *Builder) Empty() bool { + b.mu.Lock() + defer b.mu.Unlock() + + return len(b.d.Entries) == 0 +} + // -------------------------------------------------------------------------------- // Details // --------------------------------------------------------------------------------