apache/seatunnel · error · RuntimeException

not implemented

Error message

not implemented

What it means

MilvusCatalog.getTable(TablePath) is stubbed: it unconditionally throws RuntimeException('not implemented'). Milvus is a vector database without a relational table schema exposed through this catalog, so reading back a CatalogTable is unsupported in this implementation.

Source

Thrown at seatunnel-connectors-v2/connector-milvus/src/main/java/org/apache/seatunnel/connectors/seatunnel/milvus/catalog/MilvusCatalog.java:185

        R<Boolean> response =
                this.client.hasCollection(
                        HasCollectionParam.newBuilder()
                                .withDatabaseName(tablePath.getDatabaseName())
                                .withCollectionName(tablePath.getTableName())
                                .build());
        if (response.getData() != null) {
            return response.getData();
        }
        throw new MilvusConnectorException(
                MilvusConnectionErrorCode.SERVER_RESPONSE_FAILED,
                response.getMessage(),
                response.getException());
    }

    @Override
    public CatalogTable getTable(TablePath tablePath)
            throws CatalogException, TableNotExistException {
        throw new RuntimeException("not implemented");
    }

    @Override
    public void createTable(TablePath tablePath, CatalogTable catalogTable, boolean ignoreIfExists)
            throws TableAlreadyExistException, DatabaseNotExistException, CatalogException {
        checkNotNull(tablePath, "Table path cannot be null");
        if (!databaseExists(tablePath.getDatabaseName())) {
            throw new DatabaseNotExistException(catalogName, tablePath.getDatabaseName());
        }
        if (tableExists(tablePath)) {
            if (ignoreIfExists) {
                return;
            }
            throw new TableAlreadyExistException(catalogName, tablePath);
        }

        checkNotNull(catalogTable, "catalogTable must not be null");
        TableSchema tableSchema = catalogTable.getTableSchema();

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Avoid getTable against Milvus; define schemas explicitly in the job config or via createTable.
  2. Use Milvus SDK describe-collection calls directly if schema introspection is required.
  3. Contribute an implementation of getTable (describing the Milvus collection and mapping fields to CatalogTable) if needed.
  4. Check for alternate APIs (e.g. listTables/exists checks) that the Milvus catalog does implement.

Example fix

null
Defensive patterns

Strategy: try-catch

Validate before calling

// avoid the call entirely; if you must probe:
boolean tableExists = milvusCatalog.isExistsDataCollection(tablePath); // use implemented APIs only

Try / catch

try {
    CatalogTable t = milvusCatalog.getTable(tablePath);
} catch (RuntimeException e) {
    if ("not implemented".equals(e.getMessage())) {
        // fall back to explicit schema from job config
    } else { throw e; }
}

Prevention

When it happens

Trigger: Any call to getTable on a MilvusCatalog instance — e.g. framework code doing table existence/schema checks, schema evolution pipelines, or tools that resolve existing table metadata before writing.

Common situations: Users or automated jobs attempting to read schema from Milvus via the catalog API; pipeline generators that call getTable to diff schemas; code paths assuming every catalog implements getTable.

Related errors


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