apache/seatunnel · error · DorisConnectorException
UNSUPPORTED_OPERATION
UNSUPPORTED_OPERATION
Error message
Unsupported handleSplitRequest: %d
What it means
DorisSourceSplitEnumerator.handleSplitRequest is intentionally unsupported: this enumerator pushes splits to readers proactively (via assignSplit) and never serves on-demand requests. Any reader request triggers this exception with the requesting subtaskId.
Source
Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/source/split/DorisSourceSplitEnumerator.java:129
if (context.registeredReaders().contains(subtaskId)) {
assignSplit(Collections.singletonList(subtaskId));
} else {
log.warn(
"Reader {} is not registered. Pending splits {} are not assigned.",
subtaskId,
splits);
}
}
}
@Override
public int currentUnassignedSplitSize() {
return this.pendingSplit.size();
}
@Override
public void handleSplitRequest(int subtaskId) {
throw new DorisConnectorException(
CommonErrorCodeDeprecated.UNSUPPORTED_OPERATION,
String.format("Unsupported handleSplitRequest: %d", subtaskId));
}
@Override
public void registerReader(int subtaskId) {
log.debug("Register reader {} to DorisSourceSplitEnumerator.", subtaskId);
if (!pendingSplit.isEmpty()) {
assignSplit(Collections.singletonList(subtaskId));
}
}
@Override
public DorisSourceState snapshotState(long checkpointId) {
synchronized (stateLock) {
return new DorisSourceState(shouldEnumerate, pendingSplit);
}
}View on GitHub (pinned to cf67b549a7)
Solutions
- Do not call sendSplitRequest from readers consuming Doris source splits
- Increase source parallelism or reduce reader count so splits are sufficient
- If using stock code, upgrade — earlier versions had request-related regressions
- Verify the checkpointed reader state isn't asking for reassignment after restore
Defensive patterns
Strategy: try-catch
Validate before calling
// in a custom reader: never call // context.sendSplitRequest(); with DorisSourceSplitEnumerator
Try / catch
try { enumerator.handleSplitRequest(subtaskId); } catch (DorisConnectorException e) { LOG.warn("split requests unsupported; splits are pushed by the enumerator"); } Prevention
- Use the stock DorisSourceReader which relies on pushed splits
- Size parallelism to the number of splits
- Avoid frameworks/patches that assume pull-based split assignment
When it happens
Trigger: SourceReader calls context.sendSplitRequest() (e.g. because it ran out of splits and believes more may come) while registered with this enumerator.
Common situations: Custom source reader modifications requesting splits; framework-triggered requests after a reader finishes all assigned splits; misconfigured parallelism causing readers to starve and request splits.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Reader {} is not registered. Pending splits {} are not assig
- SHOULD_NEVER_HAPPEN
- SHOULD_NEVER_HAPPEN
- UNSUPPORTED_OPERATION
- Failed to load JDBC driver com.mysql.cj.jdbc.Driver
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/fd08f8903d2dd3a9.
Report an issue: GitHub.