m1k1o/neko · error
stream-src not enabled
Error message
stream-src not enabled
What it means
StreamSrcManagerCtx.Start returns 'stream-src not enabled' when manager.enabled is false. Like the screencast manager, a stream-src constructed as disabled refuses to create its pipeline. The check happens before codec/pipeline lookup, right after the already-exists check.
Source
Thrown at server/internal/capture/streamsrc.go:123
}
func (manager *StreamSrcManagerCtx) Codec() codec.RTPCodec {
manager.pipelineMu.Lock()
defer manager.pipelineMu.Unlock()
return manager.codec
}
func (manager *StreamSrcManagerCtx) Start(codec codec.RTPCodec) error {
manager.pipelineMu.Lock()
defer manager.pipelineMu.Unlock()
if manager.pipeline != nil {
return types.ErrCapturePipelineAlreadyExists
}
if !manager.enabled {
return errors.New("stream-src not enabled")
}
found := false
for codecName, pipeline := range manager.codecPipeline {
if codecName == codec.Name {
manager.pipelineStr = pipeline
manager.codec = codec
found = true
break
}
}
if !found {
return errors.New("no pipeline found for a codec")
}
var err error
View on GitHub (pinned to b0f01cedea)
Solutions
- Enable stream-src in the server configuration before calling Start
- Have the client request the stream-src capability so the manager is created enabled
- If intentionally disabled, surface a user-facing 'streaming unavailable' state instead of retrying
Example fix
// before
if err := streamSrc.Start(codec); err != nil { return err } // stream-src not enabled
// after
if !streamSrcEnabled {
return fmt.Errorf("cannot start stream-src: feature disabled in config")
}
if err := streamSrc.Start(codec); err != nil { return err } Defensive patterns
Strategy: validation
Validate before calling
if !cfg.StreamSrc.Enabled {
return errors.New("stream-src disabled; cannot start")
}
if err := streamSrc.Start(codec); err != nil { return err } Try / catch
if err := streamSrc.Start(codec); err != nil {
if err.Error() == "stream-src not enabled" {
return fmt.Errorf("streaming unavailable: %w", err) // non-retryable; fix config
}
return err
} Prevention
- Enable stream-src in server config when streaming is required
- Check the enabled state before exposing start controls in the UI
- Keep client capability requests aligned with server-side enablement
- Document that Start is non-retryable when the feature is disabled
When it happens
Trigger: Calling Start() on a stream-src manager whose configuration has streaming source disabled; enabling logic never ran (config flag off or client did not request stream-src).
Common situations: Server started without stream-src enabled but a client attempts to start the source stream; environment where streaming is deliberately disabled (e.g. no capture device); config resets after upgrades.
Related errors
- screencast not enabled
- no pipeline found for a codec
- unable to unmarshal %s plugin settings from global settings:
- unable to unmarshal %s plugin settings from profile: %w
- image data not found
AI-assisted analysis of m1k1o/neko@b0f01cedea (2026-09-01).
Data as JSON: /api/errors/1acc97b4887765c6.
Report an issue: GitHub.