apache/seatunnel · error · RedisConnectorException
UNSUPPORTED_DATA_TYPE
UNSUPPORTED_DATA_TYPE
Error message
UnSupport redisDataType,only support string,list,hash,set,zset
What it means
RedisSourceReader.pollNext reads records by dispatching to a RedisRecordReader based on the table's RedisDataType. If the data type is not string, list, hash, set, or zset, no reader branch exists and the reader throws RedisConnectorException with UNSUPPORTED_DATA_TYPE.
Source
Thrown at seatunnel-connectors-v2/connector-redis/src/main/java/org/apache/seatunnel/connectors/seatunnel/redis/source/RedisSourceReader.java:184
return;
}
if (RedisDataType.STRING.equals(dataType) || RedisDataType.KEY.equals(dataType)) {
redisRecordReader.pollStringToNext(keys, output);
return;
}
if (RedisDataType.LIST.equals(dataType)) {
redisRecordReader.pollListToNext(keys, output);
return;
}
if (RedisDataType.SET.equals(dataType)) {
redisRecordReader.pollSetToNext(keys, output);
return;
}
if (RedisDataType.ZSET.equals(dataType)) {
redisRecordReader.pollZsetToNext(keys, output);
return;
}
throw new RedisConnectorException(
CommonErrorCode.UNSUPPORTED_DATA_TYPE,
"UnSupport redisDataType,only support string,list,hash,set,zset");
}
/**
* Create a record reader for the given table configuration.
*
* @param tableConfig Table configuration
* @return RedisRecordReader
*/
private RedisRecordReader createRecordReader(RedisTableConfig tableConfig) {
DeserializationSchema<SeaTunnelRow> deserializationSchema =
tableConfig.getDeserializationSchema();
TablePath tablePath = tableConfig.getTablePath();
if (Boolean.TRUE.equals(tableConfig.getReadKeyEnabled())) {
return new KeyedRecordReader(
this.redisParameters,View on GitHub (pinned to cf67b549a7)
Solutions
- Set redis_data_type to string, list, hash, set, or zset in the source table config
- Verify the table config key spelling and that table parsing populated the data type
- If the type is needed, add a poll branch and a corresponding record reader implementation
Example fix
// before redis_data_type = "stream" // after redis_data_type = "list"
Defensive patterns
Strategy: validation
Validate before calling
if (!Set.of("string","list","hash","set","zset").contains(tableCfg.get("redis_data_type"))) throw new IllegalArgumentException("Unsupported redis_data_type for source"); Prevention
- Mirror source and sink data-type validation
- Unit-test each table config before deployment
- Log the resolved RedisDataType per table at source init
When it happens
Trigger: A Redis source table is configured with a redis_data_type outside the supported set (or resolves to null); processTable drives pollNext and the dispatch chain ends in the throw.
Common situations: Typo in redis_data_type (e.g. 'bitmap', 'stream'); a data type supported by another Redis connector version but not this one; null data type from incomplete table config.
Related errors
- UNSUPPORTED_DATA_TYPE
- ILLEGAL_ARGUMENT
- Operator EXTENSION requires a non-null ConditionExtension
- getProducedCatalogTables method has not been implemented.
- The Factory has not been implemented and the deprecated Plug
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/4c6c30fce854cbf4.
Report an issue: GitHub.