apache/seatunnel · warning

Reader {} is not registered. Pending splits {} are not assig

Error message

Reader {} is not registered. Pending splits {} are not assigned.

What it means

The ClickHouse split enumerator's addSplitsBack re-queues splits returned by a reader. If subtaskId is not in context.registeredReaders(), the splits are stored as pending but not assigned, and this warning is logged. They will be assigned once the reader re-registers.

Source

Thrown at seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/source/split/ClickhouseSourceSplitEnumerator.java:128

                }
            }
        }

        LOG.info("No more splits to assign." + " Sending NoMoreSplitsEvent to reader {}.", readers);
        readers.forEach(context::signalNoMoreSplits);
    }

    @Override
    public void close() throws IOException {}

    @Override
    public void addSplitsBack(List<ClickhouseSourceSplit> splits, int subtaskId) {
        if (!splits.isEmpty()) {
            addPendingSplit(splits, subtaskId);
            if (context.registeredReaders().contains(subtaskId)) {
                assignSplit(Collections.singletonList(subtaskId));
            } else {
                LOG.warn(
                        "Reader {} is not registered. Pending splits {} are not assigned.",
                        subtaskId,
                        splits);
            }
        }
        LOG.info("Add back splits {} to JdbcSourceSplitEnumerator.", splits.size());
    }

    @Override
    public int currentUnassignedSplitSize() {
        return this.pendingSplit.size();
    }

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

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Usually no action: pending splits are assigned on registerReader.
  2. If splits remain stuck, restart the job from the latest checkpoint to realign enumerator and reader state.
  3. Investigate why the reader was unregistered (check TaskManager/worker logs for the reader failure).
Defensive patterns

Strategy: retry

Prevention

When it happens

Trigger: A ClickHouse source reader fails or is deregistered and its addSplitsBack callback reaches the enumerator before the reader has re-registered (typical after task failure/restart).

Common situations: Worker crash/failover; checkpoint restore racing with split return; slow reader reconnection exceeding registration timeout.

Related errors


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