{"record":{"id":"441be0240eea5513","repo":"t8y2/dbx","slug":"too-many-cassandra-reconnection-policy-parameters","errorCode":null,"errorMessage":"too many Cassandra reconnection policy parameters","messagePattern":"too many Cassandra reconnection policy parameters","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/cassandra-go/config.go","lineNumber":555,"sourceCode":"\t\tname = name[:open]\n\t}\n\tpolicy := strings.ToLower(strings.TrimSpace(name))\n\tbaseDelay := time.Second\n\tmaxDelay := 60 * time.Second\n\tif parameters != \"\" {\n\t\tparts := strings.Split(parameters, \",\")\n\t\tfor index, part := range parts {\n\t\t\tpart = strings.TrimSpace(strings.ReplaceAll(strings.ToLower(part), \"(long)\", \"\"))\n\t\t\tseconds, err := strconv.Atoi(part)\n\t\t\tif err != nil || seconds < 0 {\n\t\t\t\treturn \"\", 0, 0, fmt.Errorf(\"invalid Cassandra reconnection policy delay: %s\", part)\n\t\t\t}\n\t\t\tif index == 0 {\n\t\t\t\tbaseDelay = time.Duration(seconds) * time.Second\n\t\t\t} else if index == 1 {\n\t\t\t\tmaxDelay = time.Duration(seconds) * time.Second\n\t\t\t} else {\n\t\t\t\treturn \"\", 0, 0, fmt.Errorf(\"too many Cassandra reconnection policy parameters\")\n\t\t\t}\n\t\t}\n\t}\n\tswitch policy {\n\tcase \"\", \"constantreconnectionpolicy\":\n\t\treturn \"constant\", baseDelay, baseDelay, nil\n\tcase \"exponentialreconnectionpolicy\":\n\t\treturn \"exponential\", baseDelay, maxDelay, nil\n\tdefault:\n\t\treturn \"\", 0, 0, fmt.Errorf(\"unsupported Cassandra reconnection policy: %s\", value)\n\t}\n}\n\nfunc simpleClassName(value string) string {\n\tvalue = strings.TrimSpace(value)\n\tprefix := value\n\tif open := strings.IndexByte(prefix, '('); open >= 0 {\n\t\tprefix = prefix[:open]","sourceCodeStart":537,"sourceCodeEnd":573,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/cassandra-go/config.go#L537-L573","documentation":"parseReconnectionPolicy accepts at most two delay parameters (base delay and max delay). A third or subsequent parameter triggers this error because the supported policies (constant, exponential) take no more than two long arguments.","triggerScenarios":"Passing a reconnection policy with 3+ comma-separated parameters, e.g. ConstantReconnectionPolicy(1000, 10000, 60000).","commonSituations":"Copying an argument list from a different/custom policy class that has more parameters, or accidentally repeating a parameter in HOCON config.","solutions":["Remove extra parameters, keeping only base delay (and max delay for exponential)","Use only the two arguments supported by ConstantReconnectionPolicy(baseDelay, maxDelay) or ExponentialReconnectionPolicy(baseDelay, maxDelay)","Drop the policy arguments entirely to use defaults"],"exampleFix":"// before\nreconnectionPolicy = ConstantReconnectionPolicy(1000, 10000, 60000)\n// after\nreconnectionPolicy = ConstantReconnectionPolicy(1000, 10000)","handlingStrategy":"validation","validationCode":"func validArgCount(args string) bool {\n\targs = strings.TrimSpace(args)\n\tif args == \"\" {\n\t\treturn true\n\t}\n\treturn len(strings.Split(args, \",\")) <= 2\n}","typeGuard":null,"tryCatchPattern":"if _, _, _, err := parseReconnectionPolicy(raw); err != nil {\n\treturn fmt.Errorf(\"max 2 args (baseDelay, maxDelay): %w\", err)\n}","preventionTips":["Limit ConstantReconnectionPolicy/ExponentialReconnectionPolicy to two arguments","Copy argument lists only from these two supported classes","Check for duplicated/extra commas in HOCON values"],"tags":["cassandra","config","reconnection-policy","arity"],"backgroundTag":"unsupported-config-value","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}