apache/seatunnel · error · OptionValidationException
OptionValidationException(e.getMessage())
Error message
OptionValidationException(e.getMessage())
What it means
JdbcTableOptionsConditionExtension.evaluate delegates to JdbcTableOptionsValidator.validate and, if the validator raises JdbcConnectorException, re-wraps it as OptionValidationException with the same message. This normalizes JDBC table-option validation failures into the option-validation framework so config errors surface uniformly at job definition time.
Solutions
- Read the exception message — it carries the validator's original explanation of which options conflict.
- Fix the offending JDBC table options in the config per the validator's requirement.
- Consult the connector's option documentation for supported combinations for your dialect.
Defensive patterns
Strategy: validation
Validate before calling
// pre-check table options against the connector docs before submitting ReadonlyConfig cfg = ReadonlyConfig.fromMap(options); new JdbcTableOptionsConditionExtension().evaluate(cfg, true); // throws early outside job
Try / catch
try {
validateOptions(cfg);
} catch (OptionValidationException e) {
// e.getMessage() mirrors the underlying JdbcConnectorException — fix options per message
} Prevention
- Validate JDBC table options in unit tests before production runs
- Keep option combinations aligned with the dialect in use
- Track connector upgrade notes for changed validators
When it happens
Trigger: Validating a JDBC table sink/source config whose options fail JdbcTableOptionsValidator (e.g. incompatible option combinations for the given table/dialect); the validator throws JdbcConnectorException which is converted.
Common situations: Copy-pasted configs from another connector or dialect; option combinations valid in older SeaTunnel versions but rejected by newer validators; typos in option values that violate table-level constraints.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- CONFIG_VALIDATION_FAILED
- CONFIG_VALIDATION_FAILED
- CONFIG_VALIDATION_FAILED
- CONFIG_VALIDATION_FAILED
- Invalid JDBC URL format
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/da46cda7a149f981.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/sink/JdbcTableOptionsConditionExtension.java:54
private JdbcTableOptionsConditionExtension() {}
@Override
public String description() {
return "must use dialect-specific keys supported by the JDBC sink (see JDBC connector docs)";
}
@Override
public boolean evaluate(ReadonlyConfig config, Map<String, String> value)
throws OptionValidationException {
if (value == null || value.isEmpty()) {
return true;
}
try {
JdbcTableOptionsValidator.validate(config, value);
return true;
} catch (JdbcConnectorException e) {
throw new OptionValidationException(e.getMessage());
}
}
}
View on GitHub (pinned to cf67b549a7)