{"record":{"id":"14be7a07ebc20d10","repo":"crowdsecurity/crowdsec","slug":"invalid-value-for-max-buffer-size-w","errorCode":null,"errorMessage":"invalid value for 'max_buffer_size': %w","messagePattern":"invalid value for 'max_buffer_size': %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/acquisition/modules/s3/config.go","lineNumber":241,"sourceCode":"\t\t\tcase \"log_level\":\n\t\t\t\tif len(value) != 1 {\n\t\t\t\t\treturn errors.New(\"expected zero or one value for 'log_level'\")\n\t\t\t\t}\n\n\t\t\t\tlvl, err := log.ParseLevel(value[0])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"unknown level %s: %w\", value[0], err)\n\t\t\t\t}\n\n\t\t\t\ts.logger.Logger.SetLevel(lvl)\n\t\t\tcase \"max_buffer_size\":\n\t\t\t\tif len(value) != 1 {\n\t\t\t\t\treturn errors.New(\"expected zero or one value for 'max_buffer_size'\")\n\t\t\t\t}\n\n\t\t\t\tmaxBufferSize, err := strconv.Atoi(value[0])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"invalid value for 'max_buffer_size': %w\", err)\n\t\t\t\t}\n\n\t\t\t\ts.logger.Debugf(\"Setting max buffer size to %d\", maxBufferSize)\n\t\t\t\ts.Config.MaxBufferSize = maxBufferSize\n\t\t\tdefault:\n\t\t\t\treturn fmt.Errorf(\"unknown parameter %s\", key)\n\t\t\t}\n\t\t}\n\t}\n\n\ts.Config.Labels = labels\n\ts.Config.Mode = configuration.CAT_MODE\n\ts.Config.UniqueId = uuid\n\n\tpathParts := strings.Split(args[0], \"/\")\n\ts.logger.Debugf(\"pathParts: %v\", pathParts)\n\n\t// FIXME: handle s3://bucket/","sourceCodeStart":223,"sourceCodeEnd":259,"githubUrl":"https://github.com/crowdsecurity/crowdsec/blob/909b5157986a2b2c2163300fdaef5ed01289f7d2/pkg/acquisition/modules/s3/config.go#L223-L259","documentation":"ConfigureByDSN parses the 'max_buffer_size' DSN parameter with strconv.Atoi. If the value is not a plain integer, the parse error is wrapped and returned. The parameter controls the bufio.Scanner buffer size for reading objects.","triggerScenarios":"DSN contains `max_buffer_size=10MB`, `max_buffer_size=abc`, or a value with spaces/units — anything strconv.Atoi cannot parse as an int.","commonSituations":"Users specifying units (KB/MB) or separators (underscores, commas) in the value, expecting the library to parse human-friendly sizes.","solutions":["Provide max_buffer_size as a plain integer number of bytes, e.g. max_buffer_size=10485760.","Remove units or separators from the value.","Omit the parameter to keep the default buffer size."],"exampleFix":"// before\ncrowdsec-s3://mybucket?max_buffer_size=10MB\n// after\ncrowdsec-s3://mybucket?max_buffer_size=10485760","handlingStrategy":"validation","validationCode":"if _, err := strconv.Atoi(bufSize); err != nil {\n    return fmt.Errorf(\"max_buffer_size must be an integer byte count, got %q\", bufSize)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always emit plain byte counts, never sizes with units.","Centralize DSN construction in one helper with parameter validation.","Document accepted parameters where DSNs are templated."],"tags":["configuration","s3","acquisition","parsing"],"backgroundTag":"invalid-config-value","analyzedSha":"909b5157986a2b2c2163300fdaef5ed01289f7d2","analyzedAt":"2026-09-06T12:27:26.012Z","contentChangedAt":"2026-09-06T12:27:26.012Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}