apache/seatunnel · warning
{} is less than {}, set to default value {}.
Error message
{} is less than {}, set to default value {}. What it means
tabletCountLimitForOnePartition validates the user-provided doris.tablet-size option. If the configured value is below DORIS_TABLET_SIZE_MIN, it logs this warning and resets the value to the minimum, so downstream tablet splitting uses at least the minimum allowed tablets per partition query.
Source
Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/rest/RestService.java:425
logger.error(errMsg);
throw new DorisConnectorException(
DorisConnectorErrorCode.REST_SERVICE_FAILED, errMsg);
}
logger.debug("Choice Doris BE '{}' for tablet '{}'.", target, tabletId);
be2Tablets.get(target).add(tabletId);
}
return be2Tablets;
}
@VisibleForTesting
static int tabletCountLimitForOnePartition(DorisSourceTable dorisSourceTable, Logger logger) {
int tabletsSize = DorisSourceOptions.DORIS_TABLET_SIZE_DEFAULT;
if (dorisSourceTable.getTabletSize() != null) {
tabletsSize = dorisSourceTable.getTabletSize();
}
if (tabletsSize < DorisSourceOptions.DORIS_TABLET_SIZE_MIN) {
logger.warn(
"{} is less than {}, set to default value {}.",
DorisSourceOptions.DORIS_TABLET_SIZE,
DorisSourceOptions.DORIS_TABLET_SIZE_MIN,
DorisSourceOptions.DORIS_TABLET_SIZE_MIN);
tabletsSize = DorisSourceOptions.DORIS_TABLET_SIZE_MIN;
}
logger.debug("Tablet size is set to {}.", tabletsSize);
return tabletsSize;
}
@VisibleForTesting
static List<PartitionDefinition> tabletsMapToPartition(
DorisSourceTable dorisSourceTable,
Map<String, List<Long>> be2Tablets,
String opaquedQueryPlan,
String database,
String table,
Logger logger)View on GitHub (pinned to cf67b549a7)
Solutions
- Set doris.tablet-size to a value >= DORIS_TABLET_SIZE_MIN in the source config
- Remove the option entirely to use the default value
- If you want more parallelism, increase tablet count in Doris (bucket_num) instead of lowering tablet-size below the minimum
Example fix
// before tablet-size = 0 // after tablet-size = 5 // >= configured minimum
Defensive patterns
Strategy: validation
Validate before calling
int tabletSize = config.get("tablet-size");
if (tabletSize < DorisSourceOptions.DORIS_TABLET_SIZE_MIN) {
tabletSize = DorisSourceOptions.DORIS_TABLET_SIZE_MIN; // or drop the option
} Prevention
- Only set doris.tablet-size with values >= the connector minimum
- Omit the option to use the default instead of guessing bounds
- Increase Doris bucket_num for more parallelism rather than lowering tablet-size
When it happens
Trigger: tabletsSize -> tabletCountLimitForOnePartition is invoked during split enumeration and DorisSourceOptions.DORIS_TABLET_SIZE was set to a value < DORIS_TABLET_SIZE_MIN (e.g. 0, 1, or a negative number).
Common situations: Users setting tablet-size to 1 or 0 hoping for maximum parallelism; config parsed from a property with a wrong unit; copy-pasted configs from older connector versions with different bounds.
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
- Schema config can not be empty
- Unknown format type:
- Option '${option}' cannot be blank
- Option '${valuesAndOptions[index + 1]}' is not valid for the
- Option 'field_delimiter' cannot be empty
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/d01cd07b0ef1e838.
Report an issue: GitHub.