glanceapp/glance · error · errNoContent

%w: %v

Error message

%w: %v

What it means

Returned by rssWidget.fetchItemsFromFeeds (internal/glance/widget-rss.go:158) when the worker pool itself failed before any feed was fetched (workerPoolDo returned err). This is infrastructure-level: the pool could not be started or panicked — distinct from per-feed errors 135, which are counted individually. Wrapped in errNoContent, so the RSS widget renders empty.

Source

Thrown at internal/glance/widget-rss.go:158

}

type rssFeedItemList []rssFeedItem

func (f rssFeedItemList) sortByNewest() rssFeedItemList {
	sort.Slice(f, func(i, j int) bool {
		return f[i].PublishedAt.After(f[j].PublishedAt)
	})

	return f
}

func (widget *rssWidget) fetchItemsFromFeeds() (rssFeedItemList, error) {
	requests := widget.FeedRequests

	job := newJob(widget.fetchItemsFromFeedTask, requests).withWorkers(30)
	feeds, errs, err := workerPoolDo(job)
	if err != nil {
		return nil, fmt.Errorf("%w: %v", errNoContent, err)
	}

	failed := 0
	entries := make(rssFeedItemList, 0, len(feeds)*10)
	seen := make(map[string]struct{})

	for i := range feeds {
		if errs[i] != nil {
			failed++
			slog.Error("Failed to get RSS feed", "url", requests[i].URL, "error", errs[i])
			continue
		}

		for _, item := range feeds[i] {
			if _, exists := seen[item.Link]; exists {
				continue
			}
			entries = append(entries, item)

View on GitHub (pinned to 91324e8de7)

Solutions

  1. Restart Glance — pool startup failures are transient runtime states
  2. Update Glance to the latest version in case the panic/failure was fixed
  3. Report upstream with the wrapped %v detail and your feed list if it reproduces
  4. Confirm the widget config is a valid list of feed URLs (config problems normally fail earlier)
Defensive patterns

Strategy: retry

Try / catch

if _, err := widget.fetchItemsFromFeeds(); err != nil && errors.Is(err, errNoContent) {
    // pool-level failure (not per-feed): restart/retry; report if persistent
}

Prevention

When it happens

Trigger: workerPoolDo returns a non-nil third return value: job scheduling failure or a panic recovered from a worker before results are collected. Per-feed HTTP/parse failures do NOT produce this error (they go to the errs slice); only a pool-wide failure does.

Common situations: Essentially an internal failure mode — a Glance bug or runtime-level issue (e.g., panic in fetchItemsFromFeedTask). Users almost always see 135/136 instead; encountering 134 alone suggests reporting upstream.

Related errors


AI-assisted analysis of glanceapp/glance@91324e8de7 (2026-08-15). Data as JSON: /api/errors/60587f8cc9a50c6d. Report an issue: GitHub.