apache/seatunnel · error · OptionValidationException
e.getMessage() (wrapped SeaTunnelRuntimeException from…
Error message
e.getMessage() (wrapped SeaTunnelRuntimeException from table_options validation)
What it means
StarRocksTableOptionsConditionExtension.evaluate runs StarRocksTableOptionsValidator on the `table_options` config value when a conditional/save-mode rule is evaluated. If validation throws SeaTunnelRuntimeException, it rethrows it as OptionValidationException carrying the original message (e.g. the blank-key or null-value table_options errors). The exception the user sees is this rewrapped validation failure.
Solutions
- Fix the underlying `table_options` entry named in the message (non-blank key, non-null value) in the HOCON config.
- Validate table_options locally before submitting the job to catch which key is malformed.
- Read the wrapped message — it names the exact property; correct or remove that key.
Example fix
// before
table_options {
"" = "x"
}
// after
table_options {
replication_num = "3"
} Defensive patterns
Strategy: validation
Validate before calling
// Validate table_options the same way the extension does, before job submission
try {
StarRocksTableOptionsValidator.validate(config, tableOptionsValue);
} catch (SeaTunnelRuntimeException e) {
System.err.println("table_options invalid: " + e.getMessage());
} Type guard
function isValidTableOptions(opts) {
return opts && Object.entries(opts).every(([k, v]) => k && k.trim() !== "" && v != null);
} Try / catch
try {
evaluate(config);
} catch (OptionValidationException e) {
// message is the wrapped SeaTunnelRuntimeException; fix the named property
} Prevention
- Fix table_options issues at the config source — this error is only a wrapper.
- Keep keys non-blank and values non-null in table_options blocks.
- Run the validator locally on configs generated from templates.
When it happens
Trigger: Calling evaluate (via option/condition validation during sink config processing) with a `table_options` value that StarRocksTableOptionsValidator rejects — including blank keys or null values from error 2470's family.
Common situations: Same root causes as table_options validation failures: empty HOCON values, null-valued map entries, malformed table_options blocks surfacing at a different validation layer with a less obvious wrapper exception.
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
- All candidate sink tables were skipped during job parsing.
- AmazonDocumentDB option 'uri' must include authentication…
- Batch label changed from
- batch_size must be >= 1, got:
- Binary chunk size must be positive, got
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/8be2570043a48051.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/sink/StarRocksTableOptionsConditionExtension.java:55
private StarRocksTableOptionsConditionExtension() {}
@Override
public String description() {
return "must be compatible with the default save_mode_create_template (see StarRocks"
+ " connector docs)";
}
@Override
public boolean evaluate(ReadonlyConfig config, Map<String, String> value)
throws OptionValidationException {
if (value == null || value.isEmpty()) {
return true;
}
try {
StarRocksTableOptionsValidator.validate(config, value);
return true;
} catch (SeaTunnelRuntimeException e) {
throw new OptionValidationException(e.getMessage());
}
}
}
View on GitHub (pinned to cf67b549a7)