t8y2/dbx · error
IoTDB SHOW VERSION returned no rows
Error message
IoTDB SHOW VERSION returned no rows
What it means
validateConnection runs 'SHOW VERSION' expecting at least one row as proof the session is live. An empty result means the query succeeded structurally but the server returned no data, so the connection cannot be validated.
Source
Thrown at agents/drivers/iotdb/query.go:39
columnTypes []string
prefetched []any
remaining int
}
type queryPageRead struct {
state *querySession
rows [][]any
hasMore bool
truncated bool
}
func (s *server) validateConnection() error {
values, err := s.queryValues("SHOW VERSION", "", 1, 0)
if err != nil {
return err
}
if len(values.Rows) == 0 {
return errors.New("IoTDB SHOW VERSION returned no rows")
}
return nil
}
func (s *server) executeQuery(options queryOptions) (queryResult, error) {
started := time.Now()
sql := trimStatementSQL(options.SQL)
if sql == "" {
return queryResult{}, errors.New("sql is required")
}
if !isQueryStatement(sql) {
if err := s.executeNonQuery(sql, effectiveDatabase(options), options.TimeoutSecs); err != nil {
return queryResult{}, err
}
return queryResult{
Columns: []string{},
ColumnTypes: []string{},
Rows: [][]any{},View on GitHub (pinned to c0390bff16)
Solutions
- Run 'SHOW VERSION' in the IoTDB CLI to confirm the server returns a version row.
- Reconnect/reopen the session (drop and re-establish) to clear any stale session state.
- Check server and driver version compatibility; upgrade the driver or server so SHOW VERSION semantics match.
Defensive patterns
Strategy: retry
Try / catch
err := s.validateConnection()
if err != nil {
if strings.Contains(err.Error(), "SHOW VERSION returned no rows") {
// reconnect once, then retry validation
if rerr := s.reconnect(); rerr == nil {
err = s.validateConnection()
}
}
if err != nil { return err }
} Prevention
- Re-establish sessions after server restarts instead of reusing stale connections.
- Smoke-test 'SHOW VERSION' via the IoTDB CLI when provisioning servers.
- Keep driver and server versions aligned to expected SHOW VERSION behavior.
When it happens
Trigger: Calling validateConnection against a server whose SHOW VERSION returns zero rows (unexpected server build/protocol behavior), or a session in a state where queries complete but return empty sets.
Common situations: Connecting to an incompatible IoTDB server version; a proxy/gateway swallowing the result rows; validating immediately after a server restart with a stale session.
Related errors
- IoTDB SHOW VARIABLES did not return TimestampPrecision
- sql is required
- unstable result shape for %s
- Informix connection failed.\nURL: " + url.replaceAll("//[^@]
- Hive connection is not open
AI-assisted analysis of t8y2/dbx@c0390bff16 (2026-09-05).
Data as JSON: /api/errors/2ea30908eb882759.
Report an issue: GitHub.