apache/seatunnel · critical · DatabendConnectorException
DRIVER_NOT_FOUND
DRIVER_NOT_FOUND
Error message
Cannot find Databend JDBC driver
What it means
DatabendCatalog's static initializer loads the Databend JDBC driver class (com.databend.DatabendDriver) via Class.forName. If the driver class is not on the classpath, the catalog cannot be constructed and throws DRIVER_NOT_FOUND. The Databend JDBC driver jar must be present in SeaTunnel's plugin/connector classpath.
Source
Thrown at seatunnel-connectors-v2/connector-databend/src/main/java/org/apache/seatunnel/connectors/seatunnel/databend/catalog/DatabendCatalog.java:67
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
public class DatabendCatalog implements Catalog {
private static final String DATABEND_DRIVER_NAME = "com.databend.jdbc.DatabendDriver";
private final String catalogName;
protected String defaultDatabase;
private boolean isOpened;
private ReadonlyConfig readonlyConfig;
static {
try {
Class.forName(DATABEND_DRIVER_NAME);
} catch (ClassNotFoundException e) {
throw new DatabendConnectorException(
DatabendConnectorErrorCode.DRIVER_NOT_FOUND,
"Cannot find Databend JDBC driver",
e);
}
}
public DatabendCatalog(ReadonlyConfig readonlyConfig, String catalogName) {
this.catalogName = catalogName;
this.readonlyConfig = readonlyConfig;
}
@Override
public void createDatabase(TablePath tablePath, boolean ignoreIfExists)
throws DatabaseAlreadyExistException, CatalogException {
String databaseName = tablePath.getDatabaseName();
createDatabase(databaseName, ignoreIfExists);
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Download the Databend JDBC driver jar and place it in the SeaTunnel plugin directory for connector-databend (or run sh bin/install-plugin.sh to fetch connectors and their drivers).
- Verify the jar contains the expected driver class: jar tf databend-jdbc-*.jar | grep -i databenddriver.
- If using a shaded/custom build, add the databend-jdbc dependency (provided scope is fine at runtime with plugin classloader) and rebuild.
- Confirm the driver version matches what the connector expects and restart the SeaTunnel node so the classpath is re-scanned.
Example fix
// before: connector config points at Databend but driver jar missing
catalog {
Databend {
url = "jdbc:databend://databend-host:443/default"
}
}
// after: install driver first
// cp databend-jdbc-x.y.z.jar $SEATUNNEL_HOME/connectors/connector-databend/
catalog {
Databend {
url = "jdbc:databend://databend-host:443/default"
username = "u"
password = "p"
}
} Defensive patterns
Strategy: validation
Validate before calling
# before starting SeaTunnel ls $SEATUNNEL_HOME/connectors/ | grep databend jar tf $SEATUNNEL_HOME/connectors/connector-databend/databend-jdbc-*.jar | grep -i "com/databend/DatabendDriver"
Try / catch
try {
Class.forName("com.databend.DatabendDriver");
} catch (ClassNotFoundException e) {
throw new IllegalStateException("Databend JDBC driver not on classpath — install databend-jdbc jar", e);
} Prevention
- Run sh bin/install-plugin.sh after installation to fetch connectors and drivers
- Place the driver jar in the connector plugin directory, not lib/
- Pin a driver version compatible with the connector's expected class name
- Restart nodes after adding jars so classloaders pick them up
When it happens
Trigger: Creating/opening a DatabendCatalog when the Databend JDBC driver jar is absent from the classpath — e.g. driver not installed via install-plugin.sh, jar placed in the wrong directory, or classloader isolation preventing the connector from seeing the jar.
Common situations: Fresh SeaTunnel install without running install-plugin.sh, driver jar placed in $SEATUNNEL_HOME/lib instead of the connector plugin dir, custom build excluding the driver dependency, or version mismatch so the expected driver class name does not exist in the jar.
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/ac0f98e07148992f.
Report an issue: GitHub.