AlexxIT/go2rtc · error
streams: stream not found
Error message
streams: stream not found: %s
What it means
AddPreload guard: streams.Get(name) returned nil, so the stream named in the preload config (name interpolated) does not exist — a preload can only attach a probe consumer to an already-created stream, it never creates one. Fired from config preload at startup or via the API.
Solutions
- Fix the preload name to match a configured stream
- Ensure the stream is created (config sources) before preload runs
- Create the stream first via the API, then call AddPreload
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/streams/preload.go:40 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/d46efc132f632d44.
Report an issue: GitHub.
Appendix: source
Thrown at internal/streams/preload.go:40
if rawQuery == "" {
rawQuery = "video&audio"
}
query, err := url.ParseQuery(rawQuery)
if err != nil {
return err
}
preloadsMu.Lock()
defer preloadsMu.Unlock()
if p := preloads[name]; p != nil {
p.stream.RemoveConsumer(p.Cons)
}
stream := Get(name)
if stream == nil {
return fmt.Errorf("streams: stream not found: %s", name)
}
cons := probe.Create("preload", query)
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)View on GitHub (pinned to c245815e75)