apache/seatunnel · error · CatalogException

Failed to connect url

Error message

Failed to connect url %s

What it means

DorisCatalog.open obtains a JDBC connection to a randomly chosen FE via DriverManager; any SQLException is wrapped into CatalogException('Failed to connect url %s'), meaning the catalog could not establish its metadata connection at startup.

Solutions

  1. Verify FE host(s) and query_port, and that at least one FE is alive
  2. Check username/password and network/firewall access to the FE JDBC port
  3. Validate the generated JDBC URL (default database exists, driver on classpath)
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:142 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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

Appendix: source

Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:142

            String defaultDatabase) {
        this(catalogName, frontEndNodes, queryPort, username, password, createTableTemplate);
        this.defaultDatabase = defaultDatabase;
    }

    @Override
    public void open() throws CatalogException {
        String jdbcUrl =
                DorisCatalogUtil.getJdbcUrl(
                        DorisCatalogUtil.randomFrontEndHost(frontEndNodes),
                        queryPort,
                        defaultDatabase);
        try {
            conn = DriverManager.getConnection(jdbcUrl, username, password);
            conn.getCatalog();
            dorisVersion = getDorisVersion();
            typeConverter = DorisTypeConverterFactory.getTypeConverter(dorisVersion);
        } catch (SQLException e) {
            throw new CatalogException(String.format("Failed to connect url %s", jdbcUrl), e);
        }
        LOG.info("Catalog {} established connection to {} success", catalogName, jdbcUrl);
    }

    private String getDorisVersion() throws SQLException {
        String dorisVersion = null;
        try (PreparedStatement preparedStatement =
                        conn.prepareStatement(DorisCatalogUtil.QUERY_DORIS_VERSION_QUERY);
                ResultSet resultSet = preparedStatement.executeQuery()) {

            while (resultSet.next()) {
                dorisVersion = resultSet.getString(2);
            }
        }
        return dorisVersion;
    }

    @Override

View on GitHub (pinned to cf67b549a7)