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

  1. Set default_retention_days to a positive value (e.g. 30)
  2. 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

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.