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
- Make all json_field paths share a common [*] array parent (e.g. $.data.items[*].a and $.data.items[*].b)
- Remove or move paths that do not belong under the common array parent
- 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
- Derive all field paths from the same array element in the API response
- Test json_field against a sample response body before deploying
- Avoid mixing scalar siblings with array element fields
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
- Parent path must contain [*] for ArrayJsonPathProcessor
- FIELD_DATA_IS_INCONSISTENT
- JsonPath array cannot be null or empty
- accessId and accesskey must be provided when sts_token is…
- Agent config is not a readable file
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)