apache/seatunnel · error · HugeGraphConnectorException
ILLEGAL_CONFIG_ARGUMENT
ILLEGAL_CONFIG_ARGUMENT
Error message
Option 'host' must not be empty
What it means
HugeGraphConnectionConfig.validate() fails fast at config-load time when the 'host' option is blank, throwing ILLEGAL_CONFIG_ARGUMENT. This prevents the job from opening a client that would only fail later with a generic connection error.
Solutions
- Set a valid host value, e.g. host = "127.0.0.1" or your HugeGraph server hostname.
- Check that environment variable / placeholder substitution (e.g. ${HOST}) actually resolves — an unexpanded or empty variable yields a blank host.
- Confirm the option key spelling is 'host' in the sink/source config block.
Example fix
// before
HugeGraph {
host = ""
graph_name = "graph1"
}
// after
HugeGraph {
host = "hugegraph-server"
graph_name = "graph1"
} Defensive patterns
Strategy: validation
Validate before calling
if (host == null || host.trim().isEmpty()) { throw new IllegalArgumentException("Option 'host' must not be empty"); } Try / catch
// try { HugeGraphConnectionConfig.of(opts); } catch (HugeGraphConnectorException e) {
// if (e.getMessage().contains("Option 'host'")) { /* fail fast with clear message */ } } Prevention
- Always set host explicitly in the connector block
- Test env-var/placeholder substitution in CI before deploying
- Keep a canonical job-config template with all required keys filled
When it happens
Trigger: Building a HugeGraphConnectionConfig via of() with host = "" , host = null, or a whitespace-only value in the connector options.
Common situations: Omitting the host key entirely in the SeaTunnel config HOCON block, leaving it as an empty string after templating/environment substitution failed, or copy-pasting a config where host was commented out.
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
- ILLEGAL_CONFIG_ARGUMENT
- ILLEGAL_CONFIG_ARGUMENT
- At least one sink plugin must be configured.
- At least one source plugin must be configured.
- AzureCosmosDB requires uri, endpoint, or connection string…
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/bc0275e420466bd8.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-hugegraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/hugegraph/config/HugeGraphConnectionConfig.java:75
config.getOptional(HugeGraphOptions.PASSWORD).ifPresent(connectionConfig::setPassword);
connectionConfig.setMaxRetries(
config.getOptional(HugeGraphOptions.MAX_RETRIES)
.orElse(HugeGraphOptions.MAX_RETRIES.defaultValue()));
connectionConfig.setRetryBackoffMs(
config.getOptional(HugeGraphOptions.RETRY_BACKOFF_MS)
.orElse(HugeGraphOptions.RETRY_BACKOFF_MS.defaultValue()));
connectionConfig.setRetryBackoffMaxMs(
config.getOptional(HugeGraphOptions.RETRY_BACKOFF_MAX_MS)
.orElse(HugeGraphOptions.RETRY_BACKOFF_MAX_MS.defaultValue()));
validate(connectionConfig);
return connectionConfig;
}
private static void validate(HugeGraphConnectionConfig config) {
// Fail fast at config-load with the offending option name, so the job stops before opening
// a client that would otherwise surface a generic connection error much later.
if (isBlank(config.getHost())) {
throw new HugeGraphConnectorException(
HugeGraphConnectorErrorCode.ILLEGAL_CONFIG_ARGUMENT,
"Option 'host' must not be empty");
}
if (isBlank(config.getGraphName())) {
throw new HugeGraphConnectorException(
HugeGraphConnectorErrorCode.ILLEGAL_CONFIG_ARGUMENT,
"Option 'graph_name' must not be empty");
}
// graph_space is not validated for emptiness: it carries a non-empty default ("DEFAULT"),
// HugeGraphConnectionConfig.of() coalesces blank values to that default, and
// HugeGraphClient additionally falls back to "DEFAULT" for any null — so it can never be
// empty here.
if (config.getPort() < 1 || config.getPort() > 65535) {
throw new HugeGraphConnectorException(
HugeGraphConnectorErrorCode.ILLEGAL_CONFIG_ARGUMENT,
String.format(
"Option 'port' must be in range [1, 65535], but got %s",
config.getPort()));View on GitHub (pinned to cf67b549a7)