apache/seatunnel · error · SeaTunnelException
${CommonError.convertToConnectorPropsBlankError(Paimon, prop
Error message
${CommonError.convertToConnectorPropsBlankError(Paimon, propKey)} What it means
PaimonConfig.checkArgumentNotBlank validates a connector property and, when the value is blank, throws SeaTunnelException carrying CommonError.convertToConnectorPropsBlankError("Paimon", propKey) — a standardized 'Paimon property <key> cannot be blank' message. PaimonConfig's constructor uses it for required string options (e.g. user/password/warehouse-related fields) that must be non-empty for the connector to function.
Source
Thrown at seatunnel-connectors-v2/connector-paimon/src/main/java/org/apache/seatunnel/connectors/seatunnel/paimon/config/PaimonConfig.java:85
this.namespace = readonlyConfig.get(PaimonBaseOptions.DATABASE);
this.table = readonlyConfig.get(PaimonBaseOptions.TABLE);
this.hdfsSitePath = readonlyConfig.get(PaimonBaseOptions.HDFS_SITE_PATH);
this.hadoopConfProps = readonlyConfig.get(PaimonBaseOptions.HADOOP_CONF);
this.hadoopConfPath = readonlyConfig.get(PaimonBaseOptions.HADOOP_CONF_PATH);
this.catalogType = readonlyConfig.get(PaimonBaseOptions.CATALOG_TYPE);
if (PaimonCatalogEnum.HIVE.getType().equals(catalogType.getType())) {
this.catalogUri =
checkArgumentNotBlank(
readonlyConfig.get(PaimonBaseOptions.CATALOG_URI),
PaimonBaseOptions.CATALOG_URI.key());
}
this.user = readonlyConfig.get(PaimonBaseOptions.USER);
this.password = readonlyConfig.get(PaimonBaseOptions.PASSWORD);
}
protected String checkArgumentNotBlank(String propValue, String propKey) {
if (StringUtils.isBlank(propValue)) {
throw new SeaTunnelException(
CommonError.convertToConnectorPropsBlankError("Paimon", propKey));
}
return propValue;
}
protected static List<String> stringToList(String value, String regex) {
if (value == null || value.isEmpty()) {
return ImmutableList.of();
}
return Arrays.stream(value.split(regex)).map(String::trim).collect(toList());
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Set the reported property (see propKey in the message) to a real non-blank value in the SeaTunnel connector config.
- Fix variable/secret substitution so placeholders resolve before job submission.
- Quote and trim values in HOCON/YAML to avoid accidental whitespace-only strings.
- Validate required options in your submission pipeline before launching the job.
Example fix
// before
Paimon {
user = ""
password = ""
}
// after
Paimon {
user = "etl_user"
password = "${PAIMON_PASSWORD}"
} Defensive patterns
Strategy: validation
Validate before calling
for (Option<String> opt : List.of(PaimonBaseOptions.USER, PaimonBaseOptions.PASSWORD)) {
String v = readonlyConfig.get(opt);
if (v == null || v.trim().isEmpty()) {
throw new ConfigValidationException(opt.key() + " must be non-blank");
}
} Try / catch
try {
PaimonConfig cfg = new PaimonConfig(readonlyConfig);
} catch (SeaTunnelException e) {
if (e.getMessage() != null && e.getMessage().contains("cannot be blank")) {
LOG.error("fill in the reported Paimon option before submitting");
}
throw e;
} Prevention
- Validate required string options in CI before job submission
- Use secret injection that fails loudly on empty values
- Quote whitespace-sensitive values in HOCON/YAML
- Mirror required-option checks in the submission wrapper
When it happens
Trigger: Instantiating PaimonConfig (from a SeaTunnel ReadonlyConfig) where a required string option such as PaimonBaseOptions.USER or PASSWORD resolves to blank (empty or whitespace) and passes through checkArgumentNotBlank.
Common situations: Credentials supplied as empty strings from templated configs; env-var placeholders that resolved to nothing; copying a config sample and leaving a value empty; whitespace-only values that look non-empty in YAML/HOCON.
Understand the failure class
Background: "must not be empty", "cannot be empty" — required-field validation errors across open-source libraries — this error's family across 41 libraries.
Related errors
- The value of${key} is required
- ${key} is required
- Condition operator must not be null
- AmazonDocumentDB option '' must not be blank
- AmazonDocumentDB option '' must be a valid BSON/JSON documen
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/f69fb27596974fd3.
Report an issue: GitHub.