{"record":{"id":"2fc4fc0be1209fde","repo":"t8y2/dbx","slug":"custom-cassandra-sslenginefactory-is-not-supported","errorCode":null,"errorMessage":"custom Cassandra sslenginefactory is not supported by the native agent: %s","messagePattern":"custom Cassandra sslenginefactory is not supported by the native agent: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/cassandra-go/config.go","lineNumber":283,"sourceCode":"\t\t\t}\n\t\t\tconfig.reconnectionPolicy = policy\n\t\t\tconfig.reconnectionBaseDelay = baseDelay\n\t\t\tconfig.reconnectionMaxDelay = maxDelay\n\t\tcase \"disableinitialhostlookup\":\n\t\t\tdisabled, err := strconv.ParseBool(value)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"invalid disableinitialhostlookup option: %w\", err)\n\t\t\t}\n\t\t\tconfig.disableInitialHostLookup = disabled\n\t\tcase \"loadbalancing\":\n\t\t\tpolicy, err := normalizeLoadBalancingPolicy(value)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tconfig.loadBalancingPolicy = policy\n\t\tcase \"sslenginefactory\":\n\t\t\tif value != \"\" && !strings.EqualFold(simpleClassName(value), \"DefaultSslEngineFactory\") {\n\t\t\t\treturn fmt.Errorf(\"custom Cassandra sslenginefactory is not supported by the native agent: %s\", value)\n\t\t\t}\n\t\t\tconfig.ssl = true\n\t\tcase \"usekrb5\":\n\t\t\tenabled, err := strconv.ParseBool(value)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"invalid usekrb5 option: %w\", err)\n\t\t\t}\n\t\t\tconfig.kerberos.enabled = enabled\n\t\tcase \"secureconnectbundle\":\n\t\t\tconfig.secureConnectBundle = value\n\t\tcase \"configfile\":\n\t\t\tconfig.configFile = value\n\t\tcase \"kerberosconfig\", \"kerberosconfigpath\", \"krb5config\", \"krb5conf\":\n\t\t\tconfig.kerberos.configPath = value\n\t\tcase \"jaasconfig\", \"jaasconfigpath\":\n\t\t\tconfig.kerberos.jaasConfigPath = value\n\t\tcase \"kerberosprincipal\", \"krb5principal\":\n\t\t\tconfig.kerberos.principal = value","sourceCodeStart":265,"sourceCodeEnd":301,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/cassandra-go/config.go#L265-L301","documentation":"The 'sslenginefactory' URL parameter only supports the default SSL engine (class name DefaultSslEngineFactory, case-insensitive). Any custom SslEngineFactory class name from the Java driver world cannot be honored by the native agent, so the library rejects the DSN outright rather than silently dropping custom TLS behavior.","triggerScenarios":"DSN contains sslenginefactory=<ClassName> where the simple class name is anything other than DefaultSslEngineFactory and the value is non-empty, e.g. sslenginefactory=com.example.MySslEngineFactory.","commonSituations":"Porting an existing Java Cassandra JDBC/driver URL to the native agent; enterprise setups with custom TLS certificate loaders configured via sslenginefactory; templates that carry over all Java driver options.","solutions":["Remove the sslenginefactory parameter and rely on the default engine by just setting ssl=true or sslenginefactory=DefaultSslEngineFactory","Configure TLS via the agent's supported options (cert files, secure connect bundle) instead of a custom factory","If custom TLS logic is required, terminate/customize TLS outside the connection URL or at the proxy layer"],"exampleFix":"// before\ncassandra://127.0.0.1/myks?sslenginefactory=com.acme.CustomSslEngineFactory\n// after\ncassandra://127.0.0.1/myks?ssl=true","handlingStrategy":"validation","validationCode":"if v := q.Get(\"sslenginefactory\"); v != \"\" && !strings.EqualFold(simpleClassName(v), \"DefaultSslEngineFactory\") {\n\t// strip or replace the param before handing the DSN to the agent\n}","typeGuard":null,"tryCatchPattern":"if err := parseCassandraConfig(dsn); err != nil {\n\tif strings.Contains(err.Error(), \"sslenginefactory is not supported\") {\n\t\treturn parseCassandraConfig(stripParam(dsn, \"sslenginefactory\"))\n\t}\n\treturn err\n}","preventionTips":["Audit migrated Java driver URLs for custom factory options","Replace custom SslEngineFactory logic with supported TLS config or a sidecar proxy","Keep a mapping of Java-driver options to native-agent-supported options"],"tags":["config","url-params","ssl","tls","cassandra","unsupported-feature"],"backgroundTag":"unsupported-driver-option","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"}