{"record":{"id":"d77010d71ed15759","repo":"apache/seatunnel","slug":"unsupported-record-type","errorCode":"UNSUPPORTED_RECORD_TYPE","errorMessage":"Unsupported : \" + config.getRecordType()","messagePattern":"Unsupported : \" \\+ config\\.getRecordType\\(\\)","errorType":"error_code","errorClass":"SensorsDataException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-sensorsdata/src/main/java/org/apache/seatunnel/connectors/sensorsdata/format/record/SensorsDataRecordBuilder.java","lineNumber":77,"sourceCode":"\n        private SpecialItemRecord.Builder specialItemRecordBuilder = null;\n\n        private Builder(SensorsDataConfigBase config, RowAccessor rowAccessor) {\n            this.rowAccessor = rowAccessor;\n            switch (config.getEntityName().toLowerCase()) {\n                case USER_ENTITY_NAME:\n                    switch (config.getRecordType().toLowerCase()) {\n                        case USER_RECORD:\n                            this.recordType = SensorsDataRecordType.USER;\n                            break;\n                        case EVENT_RECORD:\n                            this.recordType = SensorsDataRecordType.USER_EVENT;\n                            break;\n                        case DETAIL_RECORD:\n                            this.recordType = SensorsDataRecordType.USER_DETAIL;\n                            break;\n                        default:\n                            throw new SensorsDataException(\n                                    SensorsDataErrorCode.UNSUPPORTED_RECORD_TYPE,\n                                    \"Unsupported : \" + config.getRecordType());\n                    }\n                    this.userRecordBuilder = UserRecordBase.newBuilder(rowAccessor);\n                    break;\n                case SPECIAL_ITEM_ENTITY_NAME:\n                    this.recordType = SensorsDataRecordType.SPECIAL_ITEM;\n                    this.specialItemRecordBuilder = SpecialItemRecord.newBuilder(rowAccessor);\n                    break;\n                default:\n                    // not support item record yet.\n                    throw new SensorsDataException(\n                            SensorsDataErrorCode.UNSUPPORTED_RECORD_TYPE,\n                            \"Unsupported : \" + config.getEntityName());\n            }\n        }\n\n        private Builder(SensorsDataRecordType recordType, RowAccessor rowAccessor) {","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-sensorsdata/src/main/java/org/apache/seatunnel/connectors/sensorsdata/format/record/SensorsDataRecordBuilder.java#L59-L95","documentation":"When entity_name is 'users', SensorsDataRecordBuilder.Builder maps record_type to USER, USER_EVENT, or USER_DETAIL; any other record_type string throws SensorsDataException(UNSUPPORTED_RECORD_TYPE) with 'Unsupported : <value>'. The builder only accepts users/events/details as record types under the users entity.","triggerScenarios":"Sink startup with entity_name=\"users\" and record_type set to any value other than \"users\", \"events\", or \"details\" (case-insensitive), e.g. \"user\", \"event\", \"detail\", \"track\", or \"item\".","commonSituations":"Typo or singular form used for record_type (\"event\" instead of \"events\"); copied config from an items-style sink where record_type differs; docs read from an older connector version that used different values.","solutions":["Set record_type to one of exactly \"users\", \"events\", or \"details\" in the sink config.","Check for singular/typo variants (event, user, detail) and fix them to the plural forms.","If you intended item records, use entity_name=\"items\" instead of changing record_type.","Consult the connector documentation for the supported record_type values in your connector version."],"exampleFix":"// before\nsink {\n  SensorsData {\n    entity_name = \"users\"\n    record_type = \"event\"   // unsupported\n  }\n}\n// after\nsink {\n  SensorsData {\n    entity_name = \"users\"\n    record_type = \"events\"\n  }\n}","handlingStrategy":"validation","validationCode":"Set<String> allowed = Set.of(\"users\", \"events\", \"details\");\nif (\"users\".equalsIgnoreCase(entityName) && !allowed.contains(recordType.toLowerCase())) {\n    throw new IllegalArgumentException(\n        \"record_type must be one of users|events|details, got: \" + recordType);\n}","typeGuard":null,"tryCatchPattern":"try {\n    builder = SensorsDataRecordBuilder.newBuilder(config, rowAccessor);\n} catch (SensorsDataException e) {\n    if (SensorsDataErrorCode.UNSUPPORTED_RECORD_TYPE.equals(e.getErrorCode())) {\n        throw new JobConfigException(\"Invalid record_type/entity_name: \" + e.getMessage(), e);\n    }\n    throw e;\n}","preventionTips":["Only use the documented record_type values: users, events, details.","Watch for singular forms (event/user/detail) that are silently rejected at startup.","Validate the whole config against the connector docs before submitting jobs.","Pin the connector version and check its supported values when upgrading."],"tags":["sensorsdata","seatunnel","config","enum"],"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-14T05:17:10.506Z"}