diff --git a/src/feeds/db.go b/src/feeds/db.go index 4a3af20..86f88fc 100644 --- a/src/feeds/db.go +++ b/src/feeds/db.go @@ -72,15 +72,20 @@ func ForEach(ctx context.Context, cb func(Feed) error) error { return err } + var errs []string for _, id := range ids { feed, err := Get(ctx, id.ID) if err != nil { return err } else if err := cb(feed); err != nil { - return err + errs = append(errs, fmt.Sprintf(`failed to fetch %s: %v`, id.ID, err)) } } + if len(errs) > 0 { + return fmt.Errorf("failed some callbacks: %+v", errs) + } + return nil }