apache/seatunnel · warning
Range string split failed for table
Error message
Range string split failed for table {}, fallback to hash split What it means
In FixedChunkSplitter.createSplits, when the string split strategy is RANGE (or AUTO resolves to RANGE), range-based string splits are attempted. If any exception occurs while computing range splits, the splitter logs this warning and falls back to hash-based string splits so the job can still run.
Solutions
- No action strictly required: the fallback to createStringColumnSplits (hash split) keeps the job running; check the logged exception for root cause.
- Set split.string-split-strategy = HASH explicitly to avoid the failed range attempt and the warning.
- Fix the underlying range split failure (check split key column type/data) if range split performance is desired.
- Inspect the exception stack trace in the log to identify the dialect limitation.
Example fix
// before (config) split.string-split-strategy = AUTO // after (config) split.string-split-strategy = HASH
Defensive patterns
Strategy: fallback
Prevention
- Set split.string-split-strategy=HASH explicitly when range split is not essential
- Check split key column type/data comparability before choosing RANGE
- Read the logged exception to understand why range split failed
When it happens
Trigger: createSplits with StringSplitStrategy.AUTO and createStringRangeSplits throws (e.g. unsupported key type/range computation error on the split column of the table).
Common situations: Splitting on string/varchar primary keys whose range computation fails on particular dialects or unusual data (empty tables, collation issues, non-comparable values); users with AUTO strategy hit this transparently.
Related errors
- Catalog not found, loading tables from jdbc directly. url
- Failed to check JDBC savepoint support; fallback to full…
- Failed to get approximate row count from table status…
- Failed to get clickhouse server config
- Range string split failed for table
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/1bf8e6ac907405a3.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/source/FixedChunkSplitter.java:97
if (config.getStringSplitStrategy() == null) {
log.info("useNewStringSplitter is {}", useCharsetBasedStringSplitter);
if (useCharsetBasedStringSplitter) {
return getJdbcSourceStringSplits(table, splitKeyName, splitKeyType);
} else {
return createStringColumnSplits(table, splitKeyName, splitKeyType);
}
}
switch (resolveStringSplitStrategy(table, splitKeyName)) {
case NONE:
return Collections.singletonList(createSingleSplit(table));
case HASH:
return createStringColumnSplits(table, splitKeyName, splitKeyType);
case RANGE:
if (config.getStringSplitStrategy() == StringSplitStrategy.AUTO) {
try {
return createStringRangeSplits(table, splitKeyName, splitKeyType);
} catch (Exception e) {
log.warn(
"Range string split failed for table {}, fallback to hash split",
table.getTablePath(),
e);
return createStringColumnSplits(table, splitKeyName, splitKeyType);
}
}
return createStringRangeSplits(table, splitKeyName, splitKeyType);
case AUTO:
throw new JdbcConnectorException(
CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT,
"Unexpected string split strategy: " + config.getStringSplitStrategy());
default:
throw new JdbcConnectorException(
CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT,
"Unsupported string split strategy: "
+ config.getStringSplitStrategy());
}
}View on GitHub (pinned to cf67b549a7)