AlexxIT/go2rtc · error

streams: preload not found

Error message

streams: preload not found: %s

What it means

DelPreload fails when the named preload does not exist in the preloads registry: the map lookup for name returns nil, so no consumer is removed and the function reports the unknown name. Fires when API callers (apiPreload) request deletion of a stream preload that was never added or was already deleted.

Solutions

  1. Verify the preload name matches one created earlier with AddPreload
  2. Check whether the preload was already removed by a prior DelPreload call
  3. List existing preloads with GetPreloads before deleting
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/streams/preload.go:62 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of AlexxIT/go2rtc@c245815e75 (2026-09-07). Data as JSON: /api/errors/8fcb2f6f0d8a662d. Report an issue: GitHub.

Appendix: source

Thrown at internal/streams/preload.go:62

	if err = stream.AddConsumer(cons); err != nil {
		return err
	}

	preloads[name] = &Preload{stream: stream, Cons: cons, Query: rawQuery}
	return nil
}

func DelPreload(name string) error {
	preloadsMu.Lock()
	defer preloadsMu.Unlock()

	if p := preloads[name]; p != nil {
		p.stream.RemoveConsumer(p.Cons)
		delete(preloads, name)
		return nil
	}

	return fmt.Errorf("streams: preload not found: %s", name)
}

func GetPreloads() map[string]*Preload {
	preloadsMu.Lock()
	defer preloadsMu.Unlock()
	return maps.Clone(preloads)
}

View on GitHub (pinned to c245815e75)