{"record":{"id":"6d315149c6764fa5","repo":"apache/seatunnel","slug":"invalid-config-6d3151","errorCode":"INVALID_CONFIG","errorMessage":"NebulaGraph tag and property names must contain only letters, digits, or underscores and must not start with a digit: ${identifier}","messagePattern":"NebulaGraph tag and property names must contain only letters, digits, or underscores and must not start with a digit: (.+?)","errorType":"error_code","errorClass":"NebulaGraphConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-nebulagraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/nebulagraph/sink/NebulaGraphStatementBuilder.java","lineNumber":166,"sourceCode":"                    break;\n                default:\n                    if (Character.isISOControl(character)) {\n                        throw new IllegalArgumentException(\n                                \"NebulaGraph string vertex IDs must not contain unsupported control characters.\");\n                    }\n                    escaped.append(character);\n            }\n        }\n        return escaped.append('\"').toString();\n    }\n\n    private static String quoteIdentifier(String identifier) {\n        return \"`\" + validateIdentifier(identifier) + \"`\";\n    }\n\n    private static String validateIdentifier(String identifier) {\n        if (identifier == null || !IDENTIFIER.matcher(identifier).matches()) {\n            throw new NebulaGraphConnectorException(\n                    NebulaGraphConnectorErrorCode.INVALID_CONFIG,\n                    \"NebulaGraph tag and property names must contain only letters, digits, or underscores and must not start with a digit: \"\n                            + identifier);\n        }\n        return identifier;\n    }\n}\n","sourceCodeStart":148,"sourceCodeEnd":174,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-nebulagraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/nebulagraph/sink/NebulaGraphStatementBuilder.java#L148-L174","documentation":"validateIdentifier() enforces that NebulaGraph tag and property names match a strict identifier pattern (letters, digits, underscores, not starting with a digit). quoteIdentifier() wraps the validated name in backticks for nGQL; anything else (null, spaces, hyphens, leading digits, special characters) raises NebulaGraphConnectorException with INVALID_CONFIG because such names would break or inject into generated statements.","triggerScenarios":"Configuring the NebulaGraph sink with a tag/property name containing characters outside [A-Za-z0-9_] or starting with a digit, e.g. tag \"user-profile\", property \"2fa-enabled\", or a name read from a wrong config key (null).","commonSituations":"Mapping source column names with hyphens or spaces directly to Nebula properties; column names that start with digits (e.g. '2024_revenue'); typos or misaligned config keys producing null identifiers.","solutions":["Rename the Nebula tag/property (or map the column) so it matches [A-Za-z_][A-Za-z0-9_]*","Add a transform to alias offending source columns to valid identifier names before the sink","Quote-compliant names cannot bypass the check — the pattern is mandatory; do not attempt backticks in the config value","Fix null identifiers by correcting the config key holding the name"],"exampleFix":"// before\nsink = { NebulaGraph { tag = \"user-profile\" ... } }\n// after\nsink = { NebulaGraph { tag = \"user_profile\" ... } } // or rename via transform","handlingStrategy":"validation","validationCode":"static final Pattern ID = Pattern.compile(\"[A-Za-z_][A-Za-z0-9_]*\"); boolean ok = ID.matcher(name).matches();","typeGuard":"String safeIdentifier(String n) { return (n != null && Pattern.compile(\"[A-Za-z_][A-Za-z0-9_]*\").matcher(n).matches()) ? n : null; }","tryCatchPattern":"try { sink.write(row); } catch (NebulaGraphConnectorException e) { if (e.getMessage().startsWith(\"NebulaGraph tag and property names\")) { /* fix config and resubmit */ } throw e; }","preventionTips":["Rename Nebula tags/properties or alias columns to match [A-Za-z_][A-Za-z0-9_]*","Validate identifier-like config values at config-load time","Never start names with a digit"],"tags":["java","nebulagraph","config","identifier"],"backgroundTag":"invalid-identifier-format","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}