apache/seatunnel · error · SeaTunnelException
tables_configs can not be empty
Error message
tables_configs can not be empty
What it means
Validation in MongodbIncrementalSourceFactory.buildWithConfig: the tables_configs option supplying per-collection table definitions is empty or missing entries, so catalog tables cannot be constructed for the collections to capture.
Solutions
- Populate tables_configs with a table definition for each collection to capture
- Ensure the number of tables_configs entries matches the collections list
- Omit tables_configs if schema should be inferred from sampled documents
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/MongodbIncrementalSourceFactory.java:151 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/2a37ef970eb54ce3.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/MongodbIncrementalSourceFactory.java:151
ILLEGAL_ARGUMENT,
"The number of collections must be equal to the number of schema tables");
}
}
private List<CatalogTable> buildWithConfig(ReadonlyConfig config) {
String factoryId = config.get(ConnectorCommonOptions.PLUGIN_NAME).replace("-CDC", "");
Map<String, Object> schemaMap = config.get(ConnectorCommonOptions.SCHEMA);
if (schemaMap != null) {
if (schemaMap.isEmpty()) {
throw new SeaTunnelException("Schema config can not be empty");
}
CatalogTable catalogTable = CatalogTableUtil.buildWithConfig(factoryId, config);
return Collections.singletonList(catalogTable);
}
List<Map<String, Object>> schemaMaps = config.get(ConnectorCommonOptions.TABLE_CONFIGS);
if (schemaMaps != null) {
if (schemaMaps.isEmpty()) {
throw new SeaTunnelException("tables_configs can not be empty");
}
return schemaMaps.stream()
.map(
map ->
CatalogTableUtil.buildWithConfig(
factoryId, ReadonlyConfig.fromMap(map)))
.collect(Collectors.toList());
}
return Collections.emptyList();
}
}
View on GitHub (pinned to cf67b549a7)