diff --git a/internal/features/anime/handler.go b/internal/features/anime/handler.go index d1df67c..a0ef78c 100644 --- a/internal/features/anime/handler.go +++ b/internal/features/anime/handler.go @@ -194,6 +194,9 @@ func (h *Handler) HandleAPIAnime(w http.ResponseWriter, r *http.Request) { case "relations": relations, err := h.svc.GetRelations(r.Context(), id) if err != nil { + if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { + return + } log.Printf("relations error for %d: %v", id, err) writeInlineLoadError(w, "Failed to load relations.") return diff --git a/internal/jikan/relations.go b/internal/jikan/relations.go index 4af4706..35135d0 100644 --- a/internal/jikan/relations.go +++ b/internal/jikan/relations.go @@ -114,6 +114,9 @@ func (c *Client) GetFullRelations(ctx context.Context, id int) ([]RelationEntry, anime, err := c.GetAnimeByID(ctx, watchOrderEntry.ID) if err != nil { + if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { + continue + } c.EnqueueAnimeFetchRetry(ctx, watchOrderEntry.ID, err) log.Printf("relations: skipping related anime %d for root %d: %v", watchOrderEntry.ID, id, err) continue