From 3588f8f3914fbc625ce97e4400d45e14d6eee2ee Mon Sep 17 00:00:00 2001 From: Deluan Date: Fri, 24 Jul 2026 18:15:07 -0400 Subject: [PATCH] feat(artwork): log external image-lookup failures at debug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The worker's res.reader==nil && extError branch returned outcomeFailed with no log, so a failing external cover lookup (agent error, dead image URL, download timeout) was undiagnosable. Log the agent, entity, and underlying error at the fetch site where it's in hand — this surfaced a Last.fm album.getInfo returning an image URL that itself 404s. --- core/artwork/agent_images.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/artwork/agent_images.go b/core/artwork/agent_images.go index 762c2edb5..2f7b5ceef 100644 --- a/core/artwork/agent_images.go +++ b/core/artwork/agent_images.go @@ -9,6 +9,7 @@ import ( "github.com/navidrome/navidrome/conf" "github.com/navidrome/navidrome/consts" "github.com/navidrome/navidrome/core/agents" + "github.com/navidrome/navidrome/log" "github.com/navidrome/navidrome/model" "github.com/navidrome/navidrome/utils/str" ) @@ -86,6 +87,7 @@ func fetchArtistImage(ctx context.Context, ag *agents.Agents, gate gateFunc, ar } if isTransientExternal(err) { extErr = true // includes errBreakerOpen and download failures: retry via the next agent + log.Debug(ctx, "artwork: external artist-image lookup failed", "agent", a.Name, "artist", ar.Name, err) } } return nil, "", extErr @@ -111,6 +113,7 @@ func fetchAlbumImage(ctx context.Context, ag *agents.Agents, gate gateFunc, al m } if isTransientExternal(err) { extErr = true + log.Debug(ctx, "artwork: external album-image lookup failed", "agent", a.Name, "album", al.Name, err) } } return nil, "", extErr