apache/seatunnel · error · IllegalArgumentException
The value of${key} is required
Error message
The value of${key} is required What it means
PaimonCatalogLoader.checkConfiguration iterates the Paimon Configuration and, when it finds the requested key but its value is blank (null/empty/whitespace), throws IllegalArgumentException "The value of<key> is required" (note the missing space, a literal string concatenation). It validates that a present-but-blank config entry is rejected.
Source
Thrown at seatunnel-connectors-v2/connector-paimon/src/main/java/org/apache/seatunnel/connectors/seatunnel/paimon/catalog/PaimonCatalogLoader.java:131
&& StringUtils.isBlank(user)
&& StringUtils.isBlank(password)) {
throw new IllegalArgumentException(
"paimon privilege is enabled, user and password is required");
}
return catalog;
} catch (Exception e) {
throw new PaimonConnectorException(
PaimonConnectorErrorCode.LOAD_CATALOG, e.getMessage(), e);
}
}
void checkConfiguration(Configuration configuration, String key) {
Iterator<Map.Entry<String, String>> entryIterator = configuration.iterator();
while (entryIterator.hasNext()) {
Map.Entry<String, String> entry = entryIterator.next();
if (entry.getKey().equals(key)) {
if (StringUtils.isBlank(entry.getValue())) {
throw new IllegalArgumentException("The value of" + key + " is required");
}
return;
}
}
throw new IllegalArgumentException(key + " is required");
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Open the Paimon configuration (paimon-conf-dir files) and set a non-blank value for the reported key.
- Fix environment-variable/templating substitution so the value resolves to real content.
- Remove the empty key entirely if it is optional, so checkConfiguration's required-key branch (or absence handling) applies appropriately.
- Trim whitespace when generating the config programmatically.
Example fix
// before (paimon conf) security.kerberos.keytab = // after security.kerberos.keytab = /etc/security/keytabs/etl.keytab
Defensive patterns
Strategy: validation
Validate before calling
String val = configuration.getString(key, null);
if (val == null || val.trim().isEmpty()) {
throw new ConfigValidationException(key + " must be set to a non-blank value");
} Try / catch
try {
loader.loadCatalog();
} catch (IllegalArgumentException e) {
if (e.getMessage().startsWith("The value of")) {
String key = e.getMessage().substring("The value of".length()).replace(" is required", "").trim();
LOG.error("set a non-blank value for {} in paimon conf", key);
}
throw e;
} Prevention
- Lint paimon conf files for empty values before deployment
- Avoid templated placeholders that can resolve to empty strings
- Trim generated config values
- Remove optional keys entirely rather than leaving them blank
When it happens
Trigger: loadCatalog -> checkConfiguration(configuration, key) where the Paimon Configuration contains the key (e.g. a security/kerberos or metastore property) but the value is empty or whitespace, e.g. `security.kerberos.keytab = ` in paimon-conf.
Common situations: Template config files left with empty values; environment-variable substitution in paimon conf resolving to empty string; trailing whitespace-only values; a required property defined but never filled in during deployment.
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
- ${key} is required
- ${CommonError.convertToConnectorPropsBlankError(Paimon, prop
- 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/f8d0db8fa4d9fda1.
Report an issue: GitHub.