{"record":{"id":"9d6bed0dcff89a68","repo":"benbjohnson/litestream","slug":"invalid-value-for-query-parameter-q-q-must-be","errorCode":null,"errorMessage":"invalid value for query parameter %q: %q (must be a positive integer)","messagePattern":"invalid value for query parameter %q: %q \\(must be a positive integer\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"replica_url.go","lineNumber":222,"sourceCode":"\t\t\t\treturn false, true\n\t\t\t}\n\t\t}\n\t}\n\treturn false, false\n}\n\n// IntQueryValue returns a positive integer value from URL query parameters.\n// It checks keys in order and returns the value and whether it was set.\n// Returns an error if a present value is not a positive integer.\nfunc IntQueryValue(query url.Values, keys ...string) (value int64, ok bool, err error) {\n\tif query == nil {\n\t\treturn 0, false, nil\n\t}\n\tfor _, key := range keys {\n\t\tif raw := query.Get(key); raw != \"\" {\n\t\t\tn, err := strconv.ParseInt(raw, 10, 64)\n\t\t\tif err != nil || n <= 0 {\n\t\t\t\treturn 0, false, fmt.Errorf(\"invalid value for query parameter %q: %q (must be a positive integer)\", key, raw)\n\t\t\t}\n\t\t\treturn n, true, nil\n\t\t}\n\t}\n\treturn 0, false, nil\n}\n\n// IsHetznerEndpoint returns true if the endpoint is Hetzner object storage service.\nfunc IsHetznerEndpoint(endpoint string) bool {\n\thost := extractEndpointHost(endpoint)\n\tif host == \"\" {\n\t\treturn false\n\t}\n\treturn strings.HasSuffix(host, \".your-objectstorage.com\")\n}\n\n// IsTigrisEndpoint returns true if the endpoint is the Tigris object storage service.\nfunc IsTigrisEndpoint(endpoint string) bool {","sourceCodeStart":204,"sourceCodeEnd":240,"githubUrl":"https://github.com/benbjohnson/litestream/blob/4ed7a308f6271ebfd2b0a6e4b70b03011a37e4a3/replica_url.go#L204-L240","documentation":"IntQueryValue rejected a URL query parameter (e.g. concurrency, partSize, retention): the value is present but is not a positive base-10 integer. Flag-style values like '0', '-1', or non-numeric strings are invalid for these numeric knobs.","triggerScenarios":"Thrown at replica_url.go:222 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the query parameter to a positive integer, e.g. ?concurrency=4","Remove the parameter to use its default"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4ed7a308f6271ebfd2b0a6e4b70b03011a37e4a3","analyzedAt":"2026-09-06T18:29:25.564Z","contentChangedAt":"2026-09-06T18:29:25.564Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}