SigNoz/signoz · error
ErrCodeInvalidConfig
ErrCodeInvalidConfig
Error message
telemetry meter collector: default_retention_days must be positive
What it means
TelemetryConfig.Validate rejects DefaultRetentionDays <= 0 — retention must be a positive number of days so meter data has a sane TTL.
Source
Thrown at pkg/metercollector/config.go:64
func (c StaticConfig) Validate() error {
if c.Name.IsZero() {
return errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, "static meter collector: name must be set")
}
return nil
}
func (c TelemetryConfig) Validate() error {
if c.Name.IsZero() {
return errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, "telemetry meter collector: name must be set")
}
if c.DBName == "" || c.TableName == "" {
return errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, "telemetry meter collector: db_name and table_name are required")
}
if c.DefaultRetentionDays <= 0 {
return errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, "telemetry meter collector: default_retention_days must be positive")
}
return nil
}
View on GitHub (pinned to 5069bf80b0)
Solutions
- Set default_retention_days to a positive value (e.g. 30)
- If you intended infinite retention, pick a large value per your storage policy
Example fix
// before
telemetry: { name: X, db_name: d, table_name: t, default_retention_days: 0 }
// after
telemetry: { name: X, db_name: d, table_name: t, default_retention_days: 90 } Defensive patterns
Strategy: validation
Validate before calling
if cfg.DefaultRetentionDays <= 0 { return fmt.Errorf("default_retention_days must be > 0") } Prevention
- Set retention explicitly; there is no default
When it happens
Trigger: TelemetryConfig with DefaultRetentionDays zero (omitted) or negative, then Validate.
Common situations: New deployment that omits default_retention_days expecting a default value (there is none); typo producing a negative number; explicitly setting 0 to 'disable' retention, which is not allowed.
Understand the failure class
Background: Config validation failed: what "invalid value for {key}" and settings-rejection errors mean across 19 open-source libraries — this error's family across 19 libraries.
Related errors
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/32f9548ba7e2c08b.
Report an issue: GitHub.