diff --git a/backends/funkwhale/funkwhale.go b/backends/funkwhale/funkwhale.go
index 8398096..785761c 100644
--- a/backends/funkwhale/funkwhale.go
+++ b/backends/funkwhale/funkwhale.go
@@ -107,6 +107,7 @@ out:
 	for {
 		result, err := b.client.GetFavoriteTracks(page, perPage)
 		if err != nil {
+			progress <- p.Complete()
 			results <- models.LovesResult{Error: err}
 			return
 		}
diff --git a/backends/listenbrainz/listenbrainz.go b/backends/listenbrainz/listenbrainz.go
index 0d2a801..9e75003 100644
--- a/backends/listenbrainz/listenbrainz.go
+++ b/backends/listenbrainz/listenbrainz.go
@@ -106,6 +106,7 @@ out:
 	for {
 		result, err := b.client.GetFeedback(b.username, 1, offset)
 		if err != nil {
+			progress <- p.Complete()
 			results <- models.LovesResult{Error: err}
 			return
 		}
diff --git a/backends/scrobblerlog/scrobblerlog.go b/backends/scrobblerlog/scrobblerlog.go
index f040642..f4a7681 100644
--- a/backends/scrobblerlog/scrobblerlog.go
+++ b/backends/scrobblerlog/scrobblerlog.go
@@ -103,6 +103,7 @@ func (b *ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time, results c
 	defer close(progress)
 	file, err := os.Open(b.filePath)
 	if err != nil {
+		progress <- models.Progress{}.Complete()
 		results <- models.ListensResult{Error: err}
 		return
 	}
@@ -111,8 +112,8 @@ func (b *ScrobblerLogBackend) ExportListens(oldestTimestamp time.Time, results c
 
 	log, err := Parse(file, b.includeSkipped)
 	if err != nil {
+		progress <- models.Progress{}.Complete()
 		results <- models.ListensResult{Error: err}
-		close(results)
 		return
 	}
 
diff --git a/backends/subsonic/subsonic.go b/backends/subsonic/subsonic.go
index b38ac7c..f22a3be 100644
--- a/backends/subsonic/subsonic.go
+++ b/backends/subsonic/subsonic.go
@@ -49,12 +49,14 @@ func (b *SubsonicApiBackend) ExportLoves(oldestTimestamp time.Time, results chan
 	defer close(progress)
 	err := b.client.Authenticate(b.password)
 	if err != nil {
+		progress <- models.Progress{}.Complete()
 		results <- models.LovesResult{Error: err}
 		return
 	}
 
 	starred, err := b.client.GetStarred2(map[string]string{})
 	if err != nil {
+		progress <- models.Progress{}.Complete()
 		results <- models.LovesResult{Error: err}
 		return
 	}