{"record":{"id":"452dcc0bea7a1e52","repo":"t8y2/dbx","slug":"unsupported-cassandra-retry-policy-s","errorCode":null,"errorMessage":"unsupported Cassandra retry policy: %s","messagePattern":"unsupported Cassandra retry policy: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/cassandra-go/config.go","lineNumber":511,"sourceCode":"\tif err != nil || milliseconds < 1 {\n\t\treturn 0, fmt.Errorf(\"expected duration or positive milliseconds\")\n\t}\n\treturn time.Duration(milliseconds) * time.Millisecond, nil\n}\n\nfunc normalizeRetryPolicy(value string) (string, error) {\n\tname := strings.ToLower(simpleClassName(value))\n\tswitch name {\n\tcase \"\", \"defaultretrypolicy\", \"simpleretrypolicy\":\n\t\treturn \"simple\", nil\n\tcase \"fallthroughretrypolicy\":\n\t\treturn \"fallthrough\", nil\n\tcase \"downgradingconsistencyretrypolicy\":\n\t\treturn \"downgrading\", nil\n\tcase \"exponentialbackoffretrypolicy\":\n\t\treturn \"exponential\", nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unsupported Cassandra retry policy: %s\", value)\n\t}\n}\n\nfunc normalizeLoadBalancingPolicy(value string) (string, error) {\n\tname := strings.ToLower(simpleClassName(value))\n\tswitch name {\n\tcase \"\", \"basicloadbalancingpolicy\", \"dcinferringloadbalancingpolicy\", \"defaultloadbalancingpolicy\":\n\t\treturn \"default\", nil\n\tcase \"roundrobinpolicy\":\n\t\treturn \"round_robin\", nil\n\tcase \"dcawareroundrobinpolicy\":\n\t\treturn \"dc_aware\", nil\n\tcase \"tokenawarepolicy\":\n\t\treturn \"token_aware\", nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unsupported Cassandra loadbalancing policy: %s\", value)\n\t}\n}","sourceCodeStart":493,"sourceCodeEnd":529,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/cassandra-go/config.go#L493-L529","documentation":"normalizeRetryPolicy maps Java-driver retry policy class names to internal policy names. Values not matching a known policy (after trimming to the simple class name and lowercasing) are rejected with this error.","triggerScenarios":"applyCassandraURLParams or applyJavaDriverHOCON receives a retryPolicy value whose simple class name is not one of the recognized cases (e.g. DefaultRetryPolicy, FallthroughRetryPolicy, DowngradingConsistencyRetryPolicy, ExponentialBackoffRetryPolicy).","commonSituations":"Specifying a custom RetryPolicy implementation from application code, a typo like \"retryPolicy=Default\", or a policy class from a different driver version.","solutions":["Use one of the supported policies: DefaultRetryPolicy, FallthroughRetryPolicy, DowngradingConsistencyRetryPolicy, ExponentialBackoffRetryPolicy","Provide the full class name or simple class name; casing is normalized automatically","Remove the retryPolicy option to use the library default","Implement a custom policy only if the library exposes an extension point; otherwise choose the closest built-in"],"exampleFix":"// before\nurl = \"cassandra://host:9042/ks?retryPolicy=com.datastax.driver.core.policies.MyRetryPolicy\"\n// after\nurl = \"cassandra://host:9042/ks?retryPolicy=DefaultRetryPolicy\"","handlingStrategy":"validation","validationCode":"var supportedRetryPolicies = map[string]bool{\n\t\"defaultretrypolicy\": true, \"fallthroughretrypolicy\": true,\n\t\"downgradingconsistencyretrypolicy\": true, \"exponentialbackoffretrypolicy\": true,\n}\nfunc validRetryPolicy(v string) bool {\n\treturn supportedRetryPolicies[strings.ToLower(v)]\n}","typeGuard":null,"tryCatchPattern":"p, err := normalizeRetryPolicy(value)\nif err != nil {\n\treturn fmt.Errorf(\"%w; supported: Default, Fallthrough, DowngradingConsistency, ExponentialBackoff\", err)\n}","preventionTips":["Only use policy classes shipped with the Java driver","List accepted values in config docs/examples","Match the simple class name without package prefix"],"tags":["cassandra","config","retry-policy","unsupported-value"],"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-14T00:17:10.932Z"}