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
- Check Doris BE health (SHOW BACKENDS) and that the reported routing node is alive.
- Inspect the error message in the log (errorMsgs) for the Doris-side reason (e.g. tablet not found, timeout).
- Retry the job; BackendClient usually rotates to another backend on next attempt.
- 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
- Monitor BE health (SHOW BACKENDS) before large reads
- Avoid scanning during schema change/compaction windows
- Keep FE routing metadata fresh (restart scanner after BE topology changes)
- Read errorMsgs in the WARN to identify the Doris-side cause
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
- The status of get next result from {} is '{}', error message
- Interrupted during Doris retry backoff
- Connect to doris {} failed.
- Open scanner result from {} is null.
- Open scanner from {} failed.
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/c9bfd98e02d10466.
Report an issue: GitHub.