{"record":{"id":"cc0855d59338b130","repo":"apache/seatunnel","slug":"unsupported-parse-seatunnel-type-from-s","errorCode":null,"errorMessage":"Unsupported parse SeaTunnel Type from '%s'.","messagePattern":"Unsupported parse SeaTunnel Type from '(.+?)'\\.","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/SeaTunnelDataTypeConvertorUtil.java","lineNumber":182,"sourceCode":"            switch (typeVal.valueType()) {\n                case STRING:\n                    {\n                        fieldTypes[idx] =\n                                deserializeSeaTunnelDataType(\n                                        fieldNames[idx], (String) typeVal.unwrapped());\n                    }\n                    break;\n                case OBJECT:\n                    {\n                        fieldTypes[idx] = parseRowType((ConfigObject) typeVal);\n                    }\n                    break;\n                case LIST:\n                case NUMBER:\n                case BOOLEAN:\n                case NULL:\n                default:\n                    throw new IllegalArgumentException(\n                            String.format(\n                                    \"Unsupported parse SeaTunnel Type from '%s'.\",\n                                    typeVal.unwrapped()));\n            }\n        }\n        return new SeaTunnelRowType(fieldNames, fieldTypes);\n    }\n\n    private static SeaTunnelDataType<?> parseMapType(String field, String columnStr) {\n        String genericType = getGenericType(columnStr).trim();\n        int index =\n                genericType.toUpperCase().startsWith(SqlType.DECIMAL.name())\n                        ?\n                        // if map key is decimal, we should find the index of second ','\n                        genericType.indexOf(\",\", genericType.indexOf(\",\") + 1)\n                        :\n                        // if map key is not decimal, we should find the index of first ','\n                        genericType.indexOf(\",\");","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/SeaTunnelDataTypeConvertorUtil.java#L164-L200","documentation":"Within parseRowType, each field's declared type must resolve to a parseable SeaTunnel type; value types like LIST, NUMBER, BOOLEAN or NULL at a field-type position are not valid row field types, so the converter throws IllegalArgumentException with the offending value.","triggerScenarios":"A field in a ROW type declaration uses an unsupported/unknown type token (e.g. 'row<a list>' where 'list' lacks element type, or any unrecognized name falling into the default switch case).","commonSituations":"Typos in type names (STRINGG, INTEGR), using container types without required parameters, or strings produced by another system using different type naming conventions.","solutions":["Correct the field type names to supported SeaTunnel types (string, int, bigint, double, map<...>, array<...>, row<...>)","For containers, always include the element/value type parameters","Check the connector's supported data type docs for the exact syntax"],"exampleFix":"// before\nrow<name list>            // incomplete/unsupported\n// after\nrow<name array<string>>","handlingStrategy":"validation","validationCode":"String[] supported = {\"string\",\"boolean\",\"tinyint\",\"smallint\",\"int\",\"bigint\",\"float\",\"double\",\"decimal\",\"date\",\"time\",\"timestamp\",\"bytes\",\"array\",\"map\",\"row\"};\n// ensure each field type token is one of these (with required params)","typeGuard":null,"tryCatchPattern":"try { type = SeaTunnelDataTypeConvertorUtil.parseRowType(s); } catch (IllegalArgumentException e) { /* fix offending token shown in message */ }","preventionTips":["Use exact supported type names; avoid typos","Always parameterize array/map/row types","Cross-check against connector type-mapping docs"],"tags":["datatype","parsing","type-system"],"backgroundTag":"invalid-enum-value","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}