prestodb/presto · error · PrestoException
GENERIC_INTERNAL_ERROR
GENERIC_INTERNAL_ERROR
Error message
Cannot provide null column name for encryption columns
What it means
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.
Source
Thrown at presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java:188
public String getColumnName()
{
return columnName;
}
public Optional<String> getSubfieldPath()
{
return subfieldPath;
}
public Optional<ColumnWithStructSubfield> getChildField()
{
return subfieldPath.map(ColumnWithStructSubfield::valueOf);
}
public static ColumnWithStructSubfield valueOf(String columnExpression)
{
if (columnExpression == null) {
throw new PrestoException(GENERIC_INTERNAL_ERROR, "Cannot provide null column name for encryption columns");
}
List<String> splitParts = Splitter.on('.').limit(2).splitToList(columnExpression);
if (splitParts.size() == 1) {
return new ColumnWithStructSubfield(splitParts.get(0), Optional.empty());
}
return new ColumnWithStructSubfield(splitParts.get(0), Optional.of(splitParts.get(1)));
}
@Override
public String toString()
{
return columnName + subfieldPath.map(path -> "." + path).orElse("");
}
@OverrideView on GitHub (pinned to 55bb57d202)
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
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-hive-metastore/src/main/java/com/facebook/presto/hive/ColumnEncryptionInformation.java:188 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/9cf5cc83e2f7033f.
Report an issue: GitHub.