apache/seatunnel · warning

Option 'ignored_fields' is deprecated. Use 'properties'…

Error message

Option 'ignored_fields' is deprecated. Use 'properties' within each mapping instead.

What it means

This is a deprecation warning emitted by HugeGraphSinkConfig.of() when the legacy top-level option 'ignored_fields' is present. The option is still parsed and honored (sets ignoredFields on the config) but is superseded by per-mapping 'properties' declarations. It is a heads-up that support will be removed and to migrate now.

Solutions

  1. Remove 'ignored_fields' and instead declare exactly the fields you want under 'properties' in each mapping entry.
  2. Audit the previously ignored fields to confirm they are indeed absent from the new 'properties' maps (whitelist semantics replace blacklist semantics).
  3. Run a small validation job to confirm the sink writes the expected property set.

Example fix

// before
sink {
  HugeGraph {
    ignored_fields = ["temp_col"]
  }
}
// after
sink {
  HugeGraph {
    mappings = [
      {
        type = "VERTEX"
        label = "person"
        properties = {id = "id", name = "name"} // temp_col intentionally omitted
      }
    ]
  }
}
Defensive patterns

Strategy: validation

Validate before calling

if (config.hasPath("ignored_fields")) {
    throw new IllegalArgumentException("ignored_fields is deprecated; express field selection via mappings[].properties instead");
}

Prevention

When it happens

Trigger: A HugeGraph sink job config contains the option 'ignored_fields' (HugeGraphSinkOptions.IGNORED_FIELDS); HugeGraphSinkConfig.of() reads it via config.getOptional and logs this warning before setting it on the sink config.

Common situations: Old configs that excluded columns by blacklisting instead of whitelisting; users migrating from older connector versions; copied template configs that still carry the legacy option.

Understand the failure class

Background: "is deprecated and will be removed" — deprecation warnings for old API names, keywords, and options, and how to migrate before the removal release — this error's family across 29 libraries.

Related errors


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

Appendix: source

Thrown at seatunnel-connectors-v2/connector-hugegraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/hugegraph/config/HugeGraphSinkConfig.java:145

                        .orElse(
                                HugeGraphSinkOptions.ALLOW_CASCADE_DELETE_UNMAPPED_EDGES
                                        .defaultValue()));
        sinkConfig.setDataSaveMode(
                config.getOptional(HugeGraphSinkOptions.DATA_SAVE_MODE)
                        .orElse(HugeGraphSinkOptions.DATA_SAVE_MODE.defaultValue()));

        // Deprecated fields (parse but warn)
        config.getOptional(HugeGraphSinkOptions.SELECTED_FIELDS)
                .ifPresent(
                        fields -> {
                            LOG.warn(
                                    "Option 'selected_fields' is deprecated. Use 'properties' within each mapping instead.");
                            sinkConfig.setSelectedFields(fields);
                        });
        config.getOptional(HugeGraphSinkOptions.IGNORED_FIELDS)
                .ifPresent(
                        fields -> {
                            LOG.warn(
                                    "Option 'ignored_fields' is deprecated. Use 'properties' within each mapping instead.");
                            sinkConfig.setIgnoredFields(fields);
                        });

        return sinkConfig;
    }

    /**
     * Converts legacy global field selection into the mapping property list. The old writer ignored
     * {@code schema_config.properties} and wrote all fields after applying selected/ignored fields,
     * so preserving that behavior requires the input row schema.
     */
    public void applyLegacyFieldSelection(SeaTunnelRowType rowType) {
        if (schemaConfig == null || mappings == null || mappings.isEmpty()) {
            return;
        }

        List<String> effectiveFields;

View on GitHub (pinned to cf67b549a7)