apache/seatunnel · error · IotdbConnectorException
CommonErrorCodeDeprecated.UNSUPPORTED_OPERATION
CommonErrorCodeDeprecated.UNSUPPORTED_OPERATION
Error message
Unsupported handleSplitRequest: %d
What it means
SeaTunnel's SourceSplitEnumerator protocol expects readers to receive splits via the returned splits mechanism, not by requesting them. IoTDB's enumerator does not support on-demand split requests, so handleSplitRequest() unconditionally throws IotdbConnectorException(UNSUPPORTED_OPERATION).
Source
Thrown at seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/source/IoTDBSourceSplitEnumerator.java:279
}
private static int getSplitOwner(int currentAssignCount, int numReaders) {
return currentAssignCount % numReaders;
}
@Override
public void notifyCheckpointComplete(long checkpointId) {
// nothing to do
}
@Override
public void close() {
// nothing to do
}
@Override
public void handleSplitRequest(int subtaskId) {
throw new IotdbConnectorException(
CommonErrorCodeDeprecated.UNSUPPORTED_OPERATION,
String.format("Unsupported handleSplitRequest: %d", subtaskId));
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Don't call handleSplitRequest; rely on the enumerator's proactive split assignment.
- If seen in engine logs, check SeaTunnel version compatibility between reader and enumerator (protocol change).
- Ensure job restore uses the same connector version that wrote the checkpoint.
- Report as a bug if the standard pipeline triggers it.
Defensive patterns
Strategy: try-catch
Try / catch
catch (IotdbConnectorException e) { if (e.getErrorCode() == CommonErrorCodeDeprecated.UNSUPPORTED_OPERATION) { /* don't request splits dynamically; use enumerator's assignment */ } } Prevention
- Never call handleSplitRequest directly; rely on returned splits
- Keep reader and enumerator versions consistent across job restarts
When it happens
Trigger: The engine (or a custom caller) invokes handleSplitRequest(subtaskId) on IoTDBSourceSplitEnumerator — the request-driven split assignment path that this enumerator never supports, for any subtaskId.
Common situations: Engine/reader protocol mismatch after job restore; custom code calling handleSplitRequest directly; translation layer requesting splits dynamically instead of using addSplitsBack/returned 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
- CommonErrorCodeDeprecated.UNSUPPORTED_OPERATION
- The single-split reader don't support reading multiple split
- OPERATION_NOT_SUPPORTED
- IotdbConnectorErrorCode.CLOSE_SESSION_FAILED
- CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/fd9691739d20108a.
Report an issue: GitHub.