apache/seatunnel · error · IllegalArgumentException

${option} must not be blank

Error message

${option} must not be blank

What it means

DeepLakeSinkConfig.requireNonBlank validates required string options (workspace, table, api_url, etc.) and throws IllegalArgumentException('<option> must not be blank') when the value is null, empty, or whitespace-only. It fails fast at config construction so the job never starts with an unusable Deep Lake endpoint/table path.

Source

Thrown at seatunnel-connectors-v2/connector-deeplake/src/main/java/org/apache/seatunnel/connectors/seatunnel/deeplake/config/DeepLakeSinkConfig.java:78

            throw new IllegalArgumentException(
                    "schema_save_mode RECREATE_SCHEMA is not supported by the DeepLake sink");
        }
    }

    private static String removeTrailingSlash(String value) {
        if (value == null) {
            return null;
        }
        int end = value.length();
        while (end > 0 && value.charAt(end - 1) == '/') {
            end--;
        }
        return value.substring(0, end);
    }

    private static void requireNonBlank(String value, String option) {
        if (value == null || value.trim().isEmpty()) {
            throw new IllegalArgumentException(option + " must not be blank");
        }
    }

    private static void requirePositive(int value, String option) {
        if (value <= 0) {
            throw new IllegalArgumentException(option + " must be greater than zero");
        }
    }

    public String getApiUrl() {
        return apiUrl;
    }

    public String getApiKey() {
        return apiKey;
    }

    public String getOrgId() {

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Set the reported option (named at the start of the message) to a non-blank value
  2. Check that referenced environment variables are exported in the submit environment
  3. Trim surrounding whitespace from config values

Example fix

// before
workspace = ${DEEPLAKE_WORKSPACE} // env var unset -> blank
// after
workspace = "my-workspace" // or export DEEPLAKE_WORKSPACE before submit
Defensive patterns

Strategy: validation

Validate before calling

for (String k : java.util.List.of("workspace","table","api_url")) {
  String v = config.getString(k, null);
  if (v == null || v.trim().isEmpty()) throw new IllegalStateException(k + " must not be blank");
}

Try / catch

try { new DeepLakeSinkConfig(options); } catch (IllegalArgumentException e) { if (e.getMessage().endsWith("must not be blank")) log.error("Missing DeepLake option: {}", e.getMessage()); throw e; }

Prevention

When it happens

Trigger: Omitting a required string option in the Deep Lake sink config, or providing it as "" or whitespace (e.g. env-var interpolation resolving to an empty string).

Common situations: Missing workspace/table keys in HOCON config; ${WORKSPACE} env vars unset so interpolation yields an empty string; quoting mistakes producing empty values.

Understand the failure class

Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/5f50c98968083879. Report an issue: GitHub.