{"record":{"id":"49faa9384d6c4ac0","repo":"crowdsecurity/crowdsec","slug":"invalid-since-in-dsn-w","errorCode":null,"errorMessage":"invalid since in dsn: %w","messagePattern":"invalid since in dsn: %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/acquisition/modules/loki/config.go","lineNumber":172,"sourceCode":"\t}\n\n\tif d := params.Get(\"delay_for\"); d != \"\" {\n\t\tl.Config.DelayFor, err = time.ParseDuration(d)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid duration: %w\", err)\n\t\t}\n\n\t\tif l.Config.DelayFor < 0*time.Second || l.Config.DelayFor > 5*time.Second {\n\t\t\treturn errors.New(\"delay_for should be a value between 1s and 5s\")\n\t\t}\n\t} else {\n\t\tl.Config.DelayFor = 0 * time.Second\n\t}\n\n\tif s := params.Get(\"since\"); s != \"\" {\n\t\tl.Config.Since, err = time.ParseDuration(s)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid since in dsn: %w\", err)\n\t\t}\n\t}\n\n\tif maxFailureDuration := params.Get(\"max_failure_duration\"); maxFailureDuration != \"\" {\n\t\tduration, err := time.ParseDuration(maxFailureDuration)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid max_failure_duration in dsn: %w\", err)\n\t\t}\n\n\t\tl.Config.MaxFailureDuration = duration\n\t} else {\n\t\tl.Config.MaxFailureDuration = 5 * time.Second // for OneShot mode it doesn't make sense to have longer duration\n\t}\n\n\tif limit := params.Get(\"limit\"); limit != \"\" {\n\t\tlimit, err := strconv.Atoi(limit)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid limit in dsn: %w\", err)","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/crowdsecurity/crowdsec/blob/909b5157986a2b2c2163300fdaef5ed01289f7d2/pkg/acquisition/modules/loki/config.go#L154-L190","documentation":"Returned by ConfigureByDSN when the 'since' query parameter of a loki:// DSN is not a valid Go duration string. Wraps time.ParseDuration for the raw 'since' value supplied in the DSN query string.","triggerScenarios":"Thrown at pkg/acquisition/modules/loki/config.go:172 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a valid duration, e.g. since=1h, since=30m","Omit the parameter to use the default lookback"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"909b5157986a2b2c2163300fdaef5ed01289f7d2","analyzedAt":"2026-09-06T12:27:26.012Z","contentChangedAt":"2026-09-06T12:27:26.012Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}