Skip to content

Commit b82435b

Browse files
committed
fix(imageprovider): downgrade fallback "not found" log from warn to info
The "Fallback provider failed to get image" message fires for every species without an image (frogs, katydids, non-bird labels), which is expected behavior, not a failure. Split the log into two paths: ErrImageNotFound logs at info level (invisible to health checks), real transient errors stay at warn level.
1 parent fa08e41 commit b82435b

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

internal/imageprovider/imageprovider.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1603,14 +1603,16 @@ func (c *BirdImageCache) tryFallbackProviders(scientificName string, triedProvid
16031603
// to avoid the fallback chain and potential infinite loop
16041604
img, err := cache.fetchAndStore(scientificName)
16051605
if err != nil {
1606-
if !errors.Is(err, ErrImageNotFound) {
1607-
// Transient/real error — do NOT mark species exhausted.
1606+
if errors.Is(err, ErrImageNotFound) {
1607+
log.Info("Fallback provider has no image",
1608+
logger.String("provider", name),
1609+
logger.String("species", scientificName))
1610+
} else {
16081611
allFallbacksNotFound = false
1612+
log.Warn("Fallback provider failed to get image",
1613+
logger.String("provider", name),
1614+
logger.Error(err))
16091615
}
1610-
// Log error but continue trying other fallbacks
1611-
log.Warn("Fallback provider failed to get image",
1612-
logger.String("provider", name),
1613-
logger.Error(err))
16141616
return true // Continue ranging
16151617
}
16161618

0 commit comments

Comments
 (0)