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

  1. Set a valid host value, e.g. host = "127.0.0.1" or your HugeGraph server hostname.
  2. Check that environment variable / placeholder substitution (e.g. ${HOST}) actually resolves — an unexpanded or empty variable yields a blank host.
  3. 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

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


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)