apache/seatunnel · error · IllegalArgumentException
connectorIdentify is not supported
Error message
connectorIdentify ${convertorIdentify} is not supported What it means
DataTypeConvertorFactory.getDataTypeConvertor throws this IllegalArgumentException when the requested convertor identifier is not present in the registry of loaded DataTypeConvertor instances. The lookup is case-insensitive (keys are uppercased), so the identifier simply does not exist among registered convertors.
Solutions
- Check the exact convertor identifier string against the DataTypeConvertor implementations available in your plugins directory (identifiers are matched uppercased).
- Install the missing connector/convertor plugin with sh bin/install-plugin.sh so its convertor SPI file is on the classpath.
- If using a custom convertor, register it via META-INF/services/org.apache.seatunnel.api.table.type.DataTypeConvertor and verify its factoryIdentifier.
Example fix
// before
DataTypeConvertor<?> c = factory.getDataTypeConvertor("MySQL-VARCHAR");
// after
DataTypeConvertor<?> c = factory.getDataTypeConvertor("MySQL"); // valid registered identifier Defensive patterns
Strategy: validation
Validate before calling
String id = convertorIdentify == null ? null : convertorIdentify.toUpperCase();
if (id == null || !DataTypeConvertorFactory_KNOWN_IDS.contains(id)) {
throw new IllegalArgumentException("Unknown convertor identifier: " + convertorIdentify);
} Try / catch
try {
convertor = factory.getDataTypeConvertor(id);
} catch (IllegalArgumentException e) {
LOG.error("Unsupported convertor identifier '{}'", id, e);
throw new ConfigException("Check convertor identifier / installed plugins", e);
} Prevention
- Take convertor identifiers from the connector's official documentation, not from memory.
- List available convertors via SPI before resolving them in tooling.
- Remember matching is uppercase: normalize identifiers before lookup.
When it happens
Trigger: Calling getDataTypeConvertor(convertorIdentify) with an identifier string that no registered convertor maps to, e.g. a typo like 'mysql-varchar' or a convertor SPI that was never placed on the classpath.
Common situations: Catalog/connector plugins reference a convertor name that does not exist in the SeaTunnel distribution; user passes a custom type-mapping name not registered via SPI; copy-pasted identifier from another database connector.
Related errors
- CONFIG_VALIDATION_FAILED
- CONFIG_VALIDATION_FAILED
- CONFIG_VALIDATION_FAILED
- CONFIG_VALIDATION_FAILED
- Could not find any factories that implement
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/8d30d90ec0fa937e.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/table/factory/DataTypeConvertorFactory.java:51
this(Thread.currentThread().getContextClassLoader());
}
public DataTypeConvertorFactory(ClassLoader classLoader) {
ServiceLoader.load(DataTypeConvertor.class, classLoader)
.forEach(
dataTypeConvertor -> {
dataTypeConvertorMap.put(
dataTypeConvertor.getIdentity().toUpperCase(),
dataTypeConvertor);
});
}
public DataTypeConvertor<?> getDataTypeConvertor(String convertorIdentify) {
checkNotNull(convertorIdentify, "connectorIdentify can not be null");
if (dataTypeConvertorMap.containsKey(convertorIdentify.toUpperCase())) {
return dataTypeConvertorMap.get(convertorIdentify.toUpperCase());
}
throw new IllegalArgumentException(
"connectorIdentify " + convertorIdentify + " is not supported");
}
}
View on GitHub (pinned to cf67b549a7)