diff --git a/streamrip/client/deezer.py b/streamrip/client/deezer.py
index 3f42260..9315e8f 100644
--- a/streamrip/client/deezer.py
+++ b/streamrip/client/deezer.py
@@ -173,7 +173,7 @@ class DeezerClient(Client):
                 "quality allowed is 1.",
             )
         except deezer.WrongGeolocation:
-            if not is_retry:
+            if not is_retry and fallback_id:
                 return await self.get_downloadable(fallback_id, quality, is_retry=True)
             raise NonStreamableError(
                 "The requested track is not available. This may be due to your country/location.",
diff --git a/streamrip/media/track.py b/streamrip/media/track.py
index 695ad9b..b09cfa1 100644
--- a/streamrip/media/track.py
+++ b/streamrip/media/track.py
@@ -138,7 +138,7 @@ class PendingTrack(Pending):
         try:
             meta = TrackMetadata.from_resp(self.album, source, resp)
         except Exception as e:
-            logger.error(f"Error building track metadata for {id=}: {e}")
+            logger.error(f"Error building track metadata for {self.id}: {e}")
             return None
 
         if meta is None:
@@ -147,7 +147,13 @@ class PendingTrack(Pending):
             return None
 
         quality = self.config.session.get_source(source).quality
-        downloadable = await self.client.get_downloadable(self.id, quality)
+        try:
+            downloadable = await self.client.get_downloadable(self.id, quality)
+        except NonStreamableError as e:
+            logger.error(
+                f"Error getting downloadable data for track {meta.tracknumber} [{self.id}]: {e}"
+            )
+            return None
 
         downloads_config = self.config.session.downloads
         if downloads_config.disc_subdirectories and self.album.disctotal > 1: