apache/seatunnel · error · TDengineConnectorException

UNSUPPORTED_OPERATION

UNSUPPORTED_OPERATION

Error message

Unsupported handleSplitRequest: %d

What it means

TDengineSourceSplitEnumerator does not support on-demand split requests from readers, so handleSplitRequest always throws. Split assignment is enumerator-driven; a reader requesting a specific split is an unsupported operation for this connector.

Source

Thrown at seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/source/TDengineSourceSplitEnumerator.java:223

        pendingSplits.computeIfAbsent(ownerReader, r -> new ArrayList<>()).addAll(splits);
    }

    @Override
    public TDengineSourceState snapshotState(long checkpointId) {
        synchronized (stateLock) {
            return new TDengineSourceState(shouldEnumerate, pendingSplits, assignCount.get());
        }
    }

    @Override
    public void notifyCheckpointComplete(long checkpointId) {}

    @Override
    public void close() {}

    @Override
    public void handleSplitRequest(int subtaskId) {
        throw new TDengineConnectorException(
                CommonErrorCodeDeprecated.UNSUPPORTED_OPERATION,
                String.format("Unsupported handleSplitRequest: %d", subtaskId));
    }
}

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Do not call handleSplitRequest against this connector; rely on its enumerator's proactive split assignment.
  2. If dynamic split requests are required, switch to or implement a connector whose enumerator supports them.
  3. Check for custom modifications to the source reader that issue split requests.
Defensive patterns

Strategy: validation

Validate before calling

// Never call sendSplitRequest against this source; rely on enumerator assignment
// if (sourceReader instanceof TDengineSourceReader) { /* no split requests */ }

Prevention

When it happens

Trigger: Any call to handleSplitRequest(subtaskId) — i.e. a SourceReader calling sendSplitRequest / the framework routing a split request to this enumerator.

Common situations: Custom source reader code or framework path requesting splits dynamically; mixing this connector with code expecting dynamic split assignment semantics.

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/0bd289a533925c52. Report an issue: GitHub.