{"record":{"id":"03a031a36b3ea2bb","repo":"apache/seatunnel","slug":"invalid-graph-schema-03a031","errorCode":"INVALID_GRAPH_SCHEMA","errorMessage":"Mapping[VERTEX/%s]: Field '%s' specified in idFields not found in row schema. Available fields: %s","messagePattern":"Mapping\\[VERTEX/(.+?)\\]: Field '(.+?)' specified in idFields not found in row schema\\. Available fields: (.+?)","errorType":"error_code","errorClass":"HugeGraphConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-hugegraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/hugegraph/mapper/VertexMapper.java","lineNumber":307,"sourceCode":"                Object uuidValue = uuidValues.get(0);\n                if (isConsideredNull(uuidValue)) {\n                    return null;\n                }\n                return UUID.fromString(String.valueOf(uuidValue));\n            default:\n                throw new HugeGraphConnectorException(\n                        HugeGraphConnectorErrorCode.ILLEGAL_CONFIG_ARGUMENT,\n                        \"Unsupported IdStrategy: \" + strategy);\n        }\n    }\n\n    private List<Object> getFieldValues(SeaTunnelRow row, List<String> fields) {\n        List<Object> values = new ArrayList<>(fields.size());\n        Map<String, String> fm = mappingConfig.getFieldMapping();\n        for (String fieldName : fields) {\n            Integer index = fieldsIndex.get(fieldName);\n            if (index == null) {\n                throw new HugeGraphConnectorException(\n                        HugeGraphConnectorErrorCode.INVALID_GRAPH_SCHEMA,\n                        String.format(\n                                \"Mapping[VERTEX/%s]: Field '%s' specified in idFields not found in row schema. \"\n                                        + \"Available fields: %s\",\n                                mappingConfig.getLabel(), fieldName, fieldsIndex.keySet()));\n            }\n\n            Object rawValue = row.getField(index);\n            if (isConsideredNull(rawValue)) {\n                continue;\n            }\n\n            String propName = fm.getOrDefault(fieldName, fieldName);\n            PropertyKey propertyKey = propertyKeyCache.get(propName);\n\n            Object converted = rawValue;\n            if (propertyKey != null) {\n                converted =","sourceCodeStart":289,"sourceCodeEnd":325,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-hugegraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/hugegraph/mapper/VertexMapper.java#L289-L325","documentation":"A field listed in the mapping's idFields does not exist in the incoming SeaTunnelRow's schema, so the connector cannot locate the column index used to read the id value. Thrown as INVALID_GRAPH_SCHEMA from getFieldValues, which resolves each id field name against the row's field index built from the CatalogTable.","triggerScenarios":"getFieldValues is called (from pkValues/stringValues/numberValues/uuidValues during extractId) and fieldsIndex.get(fieldName) returns null because the idFields name does not match any column in the row schema.","commonSituations":"Typo in id_fields config; upstream Source/Transform renamed or dropped the column; SQL transform projects fewer columns than the sink mapping expects; case-sensitivity mismatch between config and schema.","solutions":["Correct the id_fields entry in the sink mapping to match the actual upstream column name exactly.","Add the missing column back upstream (e.g. in the source query or a SQL transform) before the HugeGraph sink.","Print/inspect the CatalogTable columns reaching the sink and align field_mapping and id_fields with them."],"exampleFix":"// before\n\"id_fields\": [\"usr_id\"]   // upstream column is user_id\n// after\n\"id_fields\": [\"user_id\"]","handlingStrategy":"validation","validationCode":"Set<String> schemaFields = catalogTable.getTableSchema().getFieldNames();\nfor (String f : mapping.getIdFields()) {\n    if (!schemaFields.contains(f)) throw new IllegalArgumentException(\"id field not in schema: \" + f);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Cross-check id_fields and field_mapping against the CatalogTable schema before submitting the job","Avoid column renames/drops in upstream transforms without updating the sink mapping","Use consistent casing for field names"],"tags":["hugegraph","schema","field-mapping"],"backgroundTag":"schema-validation-failed","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"}