apache/seatunnel · error · HttpConnectorException

FIELD_DATA_IS_INCONSISTENT

FIELD_DATA_IS_INCONSISTENT

Error message

Paths have different array parents. Expected '%s' but found path starting with '%s'

What it means

ArrayJsonPathProcessor.extractCommonParentPath computes a common array parent path (ending in [*]) from all configured JsonPaths. If any subsequent path does not start with that computed parent, the data layout is considered inconsistent and FIELD_DATA_IS_INCONSISTENT is thrown.

Solutions

  1. Make all json_field paths share a common [*] array parent (e.g. $.data.items[*].a and $.data.items[*].b)
  2. Remove or move paths that do not belong under the common array parent
  3. If fields are in different arrays, use separate sources/transforms or a different processor

Example fix

// before
json_field = { path = ["$.store.book[*].title", "$.store.car[*].name"] }
// after
json_field = { path = ["$.store.book[*].title", "$.store.book[*].price"] }
Defensive patterns

Strategy: validation

Validate before calling

Set<String> parents = Arrays.stream(paths).map(p -> p.getPath().split("\\[\\*\\]")[0]).collect(Collectors.toSet()); if (parents.size() != 1) throw new IllegalArgumentException("All paths must share one [*] parent");

Try / catch

try { processor.processJsonData(ctx, jsonPaths); } catch (HttpConnectorException e) { if ("FIELD_DATA_IS_INCONSISTENT".equals(e.getErrorCode().getCode())) { /* fix json_field paths */ } throw e; }

Prevention

When it happens

Trigger: json_field paths where not all paths share the same array parent, e.g. $.store.book[*].title and $.store.car[*].name — the second path diverges from the parent derived from the first.

Common situations: Users configuring fields that come from different arrays or from a scalar sibling alongside array fields, expecting the processor to flatten them together.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


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

Appendix: source

Thrown at seatunnel-connectors-v2/connector-http/connector-http-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/http/util/ArrayJsonPathProcessor.java:61

        // Get all paths as strings
        String[] pathStrings = new String[paths.length];
        for (int i = 0; i < paths.length; i++) {
            pathStrings[i] = paths[i].getPath();
        }

        String firstPath = pathStrings[0];
        int arrayPos = firstPath.indexOf("[*]");

        if (arrayPos == -1) {
            return null; // Not an array path, cannot process
        }

        String parentPath = firstPath.substring(0, arrayPos + 3);

        // Verify all other paths have the same parent
        for (int i = 1; i < pathStrings.length; i++) {
            if (!pathStrings[i].startsWith(parentPath)) {
                throw new HttpConnectorException(
                        HttpConnectorErrorCode.FIELD_DATA_IS_INCONSISTENT,
                        String.format(
                                "Paths have different array parents. Expected '%s' but found path starting with '%s'",
                                parentPath, pathStrings[i]));
            }
        }

        return parentPath;
    }

    /**
     * Get a relative path based on a parent path and a full path.
     *
     * @param parentPath The parent path
     * @param fullPath The complete path
     * @return The relative path from parent to full path
     */
    private String getRelativePath(String parentPath, String fullPath) {

View on GitHub (pinned to cf67b549a7)