{"record":{"id":"9cf5cc83e2f7033f","repo":"prestodb/presto","slug":"generic-internal-error-9cf5cc","errorCode":"GENERIC_INTERNAL_ERROR","errorMessage":"Cannot provide null column name for encryption columns","messagePattern":"Cannot provide null column name for encryption columns","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java","lineNumber":188,"sourceCode":"        public String getColumnName()\n        {\n            return columnName;\n        }\n\n        public Optional<String> getSubfieldPath()\n        {\n            return subfieldPath;\n        }\n\n        public Optional<ColumnWithStructSubfield> getChildField()\n        {\n            return subfieldPath.map(ColumnWithStructSubfield::valueOf);\n        }\n\n        public static ColumnWithStructSubfield valueOf(String columnExpression)\n        {\n            if (columnExpression == null) {\n                throw new PrestoException(GENERIC_INTERNAL_ERROR, \"Cannot provide null column name for encryption columns\");\n            }\n\n            List<String> splitParts = Splitter.on('.').limit(2).splitToList(columnExpression);\n\n            if (splitParts.size() == 1) {\n                return new ColumnWithStructSubfield(splitParts.get(0), Optional.empty());\n            }\n\n            return new ColumnWithStructSubfield(splitParts.get(0), Optional.of(splitParts.get(1)));\n        }\n\n        @Override\n        public String toString()\n        {\n            return columnName + subfieldPath.map(path -> \".\" + path).orElse(\"\");\n        }\n\n        @Override","sourceCodeStart":170,"sourceCodeEnd":206,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java#L170-L206","documentation":"ColumnWithStructSubfield.valueOf is invoked with a null string when parsing an encrypted-columns property entry; since a column expression cannot be null, this generic-internal-error guard fires. It indicates corrupted or malformed encryption property data reaching the parser.","triggerScenarios":"Thrown at presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java:188 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the encrypted columns table property so it contains no null entries","Inspect how the property value is populated to ensure entries are non-null strings before parsing"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}