{"record":{"id":"32f9548ba7e2c08b","repo":"SigNoz/signoz","slug":"errcodeinvalidconfig","errorCode":"ErrCodeInvalidConfig","errorMessage":"telemetry meter collector: default_retention_days must be positive","messagePattern":"telemetry meter collector: default_retention_days must be positive","errorType":"validation","errorClass":null,"httpStatus":400,"severity":"error","filePath":"pkg/metercollector/config.go","lineNumber":64,"sourceCode":"func (c StaticConfig) Validate() error {\n\tif c.Name.IsZero() {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"static meter collector: name must be set\")\n\t}\n\n\treturn nil\n}\n\nfunc (c TelemetryConfig) Validate() error {\n\tif c.Name.IsZero() {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"telemetry meter collector: name must be set\")\n\t}\n\n\tif c.DBName == \"\" || c.TableName == \"\" {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"telemetry meter collector: db_name and table_name are required\")\n\t}\n\n\tif c.DefaultRetentionDays <= 0 {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"telemetry meter collector: default_retention_days must be positive\")\n\t}\n\n\treturn nil\n}\n","sourceCodeStart":46,"sourceCodeEnd":69,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/metercollector/config.go#L46-L69","documentation":"TelemetryConfig.Validate rejects DefaultRetentionDays <= 0 — retention must be a positive number of days so meter data has a sane TTL.","triggerScenarios":"TelemetryConfig with DefaultRetentionDays zero (omitted) or negative, then Validate.","commonSituations":"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.","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"],"exampleFix":"// before\ntelemetry: { name: X, db_name: d, table_name: t, default_retention_days: 0 }\n// after\ntelemetry: { name: X, db_name: d, table_name: t, default_retention_days: 90 }","handlingStrategy":"validation","validationCode":"if cfg.DefaultRetentionDays <= 0 { return fmt.Errorf(\"default_retention_days must be > 0\") }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set retention explicitly; there is no default"],"tags":["metercollector","telemetry","retention","config"],"backgroundTag":"config-validation-failed","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}