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

  1. Don't call handleSplitRequest; rely on the enumerator's proactive split assignment.
  2. If seen in engine logs, check SeaTunnel version compatibility between reader and enumerator (protocol change).
  3. Ensure job restore uses the same connector version that wrote the checkpoint.
  4. 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

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


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/fd9691739d20108a. Report an issue: GitHub.