apache/seatunnel · warning

The status of open scanner result from {} is '{}', error mes

Error message

The status of open scanner result from {} is '{}', error message is: {}.

What it means

Doris BackendClient.openScanner() sends a TScanOpenRequest to a selected BE/FE node via Thrift; when the returned TScanOpenResult status is not OK it logs 'The status of open scanner result from {} is ...' at WARN and continues to the next routing (retrying another backend). If no backend succeeds the caller eventually gets a failure. It reflects the Doris backend rejecting or failing the scan open request.

Source

Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/backend/BackendClient.java:144

     * @return scan open result
     * @throws DorisConnectorException throw if cannot connect to Doris BE
     */
    public TScanOpenResult openScanner(TScanOpenParams openParams) {
        log.debug("OpenScanner to '{}', parameter is '{}'.", routing, openParams);
        if (!isConnected) {
            open();
        }
        TException ex = null;
        for (int attempt = 0; attempt < retries; ++attempt) {
            log.debug("Attempt {} to openScanner {}.", attempt, routing);
            try {
                TScanOpenResult result = client.openScanner(openParams);
                if (result == null) {
                    log.warn("Open scanner result from {} is null.", routing);
                    continue;
                }
                if (!TStatusCode.OK.equals(result.getStatus().getStatusCode())) {
                    log.warn(
                            "The status of open scanner result from {} is '{}', error message is: {}.",
                            routing,
                            result.getStatus().getStatusCode(),
                            result.getStatus().getErrorMsgs());
                    continue;
                }
                return result;
            } catch (TException e) {
                log.warn("Open scanner from {} failed.", routing, e);
                ex = e;
            }
        }
        log.error(ErrorMessages.CONNECT_FAILED_MESSAGE, routing);
        //        throw new ConnectedFailedException(routing.toString(), ex);
        throw new DorisConnectorException(
                DorisConnectorErrorCode.SCAN_BATCH_FAILED, routing.toString(), ex);
    }

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Check Doris BE health (SHOW BACKENDS) and that the reported routing node is alive.
  2. Inspect the error message in the log (errorMsgs) for the Doris-side reason (e.g. tablet not found, timeout).
  3. Retry the job; BackendClient usually rotates to another backend on next attempt.
  4. If persistent, fix the Doris table/tablet issue (wait for schema change/repair) or refresh FE metadata.
Defensive patterns

Strategy: retry

Validate before calling

// before reading: check backend health and tablet availability
// SHOW BACKENDS;              -- all BEs alive
// SHOW TABLET diagnostics;    -- replicas healthy
// ADMIN SHOW REPLICA STATUS FROM table;

Try / catch

try {
    client.openScanner(params);
} catch (TException e) {
    // rotate routing / retry next backend
}

Prevention

When it happens

Trigger: The Doris backend returns a non-OK TStatusCode for openScanner: tablet not found, backend overloaded, query timeout, invalid query plan, or the BE is unhealthy/decommissioned.

Common situations: Doris cluster under load or BE restarting; table undergoing schema change/compaction making tablets unavailable; stale FE routing info pointing to a dead BE; SELECT query with filters that hit unavailable replicas.

Related errors


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