From 0a483ad2a24ed227079f98c777d9a9815e93f67f Mon Sep 17 00:00:00 2001 From: mkelvers Date: Tue, 16 Jun 2026 00:34:02 +0200 Subject: [PATCH] fix: propagate ensureAnimeRow error instead of silently discarding it --- internal/playback/progress.go | 7 ++++--- internal/playback/watch_data.go | 7 ++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/playback/progress.go b/internal/playback/progress.go index a5e01ad..cd35ad0 100644 --- a/internal/playback/progress.go +++ b/internal/playback/progress.go @@ -161,11 +161,12 @@ func (s *playbackService) SaveProgress(ctx context.Context, userID string, anime return nil } -func (s *playbackService) ensureAnimeRow(ctx context.Context, anime domain.Anime) { +func (s *playbackService) ensureAnimeRow(ctx context.Context, anime domain.Anime) error { if _, err := s.repo.GetAnime(ctx, int64(anime.MalID)); err == nil { - return + return nil } - _, _ = s.repo.UpsertAnime(ctx, animeParams(anime)) + _, err := s.repo.UpsertAnime(ctx, animeParams(anime)) + return err } func animeParams(anime domain.Anime) db.UpsertAnimeParams { diff --git a/internal/playback/watch_data.go b/internal/playback/watch_data.go index 7ebb1b2..f1df825 100644 --- a/internal/playback/watch_data.go +++ b/internal/playback/watch_data.go @@ -19,7 +19,12 @@ func (s *playbackService) BuildWatchData(ctx context.Context, animeID int, title } animeData := domain.Anime{Anime: anime} - s.ensureAnimeRow(ctx, animeData) + if err := s.ensureAnimeRow(ctx, animeData); err != nil { + observability.Warn("upsert_anime_failed", "playback", "", + map[string]any{"anime_id": animeID}, + err, + ) + } searchTitles := buildSearchTitles(animeData, titleCandidates) canonicalEpisodes, err := s.episodes.GetCanonicalEpisodes(ctx, animeData, false) if err != nil {