From 2146876f2407bcdf01e865047718f7431c9cb7e0 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Tue, 16 Jun 2026 00:35:50 +0200 Subject: [PATCH] fix: log provider mapping cache write failures instead of silently discarding --- internal/episodes/service/provider_mapping.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/internal/episodes/service/provider_mapping.go b/internal/episodes/service/provider_mapping.go index fe19140..084ccf7 100644 --- a/internal/episodes/service/provider_mapping.go +++ b/internal/episodes/service/provider_mapping.go @@ -86,13 +86,27 @@ func (s *EpisodeService) cachedProviderID(ctx context.Context, anime domain.Anim } func (s *EpisodeService) cacheProviderIDFailure(ctx context.Context, anime domain.Anime, provider domain.EpisodeAvailabilityProvider, resolveErr error) { - _ = s.queries.UpsertEpisodeProviderMapping(ctx, db.UpsertEpisodeProviderMappingParams{ + err := s.queries.UpsertEpisodeProviderMapping(ctx, db.UpsertEpisodeProviderMappingParams{ AnimeID: int64(anime.MalID), Provider: provider.Name(), ProviderShowID: "", FailedUntil: sql.NullTime{Time: s.clock.Now().Add(time.Hour), Valid: true}, LastError: truncate(resolveErr.Error(), 400), }) + if err == nil { + return + } + + observability.Warn( + "episodes_provider_id_cache_write_failed", + "episodes", + "", + map[string]any{ + "anime_id": anime.MalID, + "provider": provider.Name(), + }, + err, + ) } func (s *EpisodeService) cacheProviderIDSuccess(ctx context.Context, anime domain.Anime, provider domain.EpisodeAvailabilityProvider, providerID string) {