{"record":{"id":"45ab76ad2745ee30","repo":"grafana/k6","slug":"invalid-s-w","errorCode":null,"errorMessage":"invalid %s: %w","messagePattern":"invalid (.+?): %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/secretsource/url/url.go","lineNumber":388,"sourceCode":"\tcase \"requestsPerMinuteLimit\":\n\t\treturn parseIntOption(value, &cfg.RequestsPerMinuteLimit, \"requestsPerMinuteLimit\")\n\tcase \"requestsBurst\":\n\t\treturn parseIntOption(value, &cfg.RequestsBurst, \"requestsBurst\")\n\tcase \"maxRetries\":\n\t\treturn parseIntOption(value, &cfg.MaxRetries, \"maxRetries\")\n\tcase \"retryBackoff\":\n\t\treturn parseDurationOption(value, &cfg.RetryBackoff, \"retryBackoff\")\n\tdefault:\n\t\treturn parseHeaderOption(key, value, cfg)\n\t}\n\treturn nil\n}\n\nfunc parseIntOption(value string, target *null.Int, optionName string) error {\n\tvar intValue int64\n\t_, err := fmt.Sscanf(value, \"%d\", &intValue)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"invalid %s: %w\", optionName, err)\n\t}\n\t*target = null.IntFrom(intValue)\n\treturn nil\n}\n\nfunc parseDurationOption(value string, target *types.NullDuration, optionName string) error {\n\tduration, err := time.ParseDuration(value)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"invalid %s: %w\", optionName, err)\n\t}\n\t*target = types.NullDurationFrom(duration)\n\treturn nil\n}\n\nfunc parseHeaderOption(key, value string, cfg *extConfig) error {\n\tif !strings.HasPrefix(key, \"headers.\") {\n\t\treturn fmt.Errorf(\"unknown configuration key: %q\", key)\n\t}","sourceCodeStart":370,"sourceCodeEnd":406,"githubUrl":"https://github.com/grafana/k6/blob/01ffac6f245854c1b8adc6a69857c76a15f90022/internal/secretsource/url/url.go#L370-L406","documentation":"parseIntOption parses numeric options (requestsPerMinuteLimit, requestsBurst, maxRetries) with fmt.Sscanf(\"%d\") and wraps any parse failure as \"invalid <optionName>: ...\". It means the value for that option was not a plain integer (e.g. \"ten\" or \"1.5\"), rejecting the secret source configuration.","triggerScenarios":"Thrown at internal/secretsource/url/url.go:388 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the named option to a plain integer, e.g. maxRetries=3","Remove unit suffixes or non-numeric characters from the value"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ffac6f245854c1b8adc6a69857c76a15f90022","analyzedAt":"2026-08-18T03:05:52.393Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}