{"record":{"id":"42539b4182280425","repo":"prestodb/presto","slug":"metadata-is-missing-for-column-s","errorCode":null,"errorMessage":"Metadata is missing for column: %s","messagePattern":"Metadata is missing for column: (.+?)","errorType":"exception","errorClass":"ParquetCorruptionException","httpStatus":null,"severity":"error","filePath":"presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ParquetReader.java","lineNumber":527,"sourceCode":"        int columnOrdinal = fileDecryptor.get().getColumnSetup(ColumnPath.get(columnChunk.getDescriptor().getColumnDescriptor().getPath())).getOrdinal();\n        return columnChunk.buildPageReader(fileDecryptor, currentBlock, columnOrdinal);\n    }\n\n    private boolean isEncryptedColumn(Optional<InternalFileDecryptor> fileDecryptor, ColumnDescriptor columnDescriptor)\n    {\n        ColumnPath columnPath = ColumnPath.get(columnDescriptor.getPath());\n        return fileDecryptor.isPresent() && !fileDecryptor.get().plaintextFile() && fileDecryptor.get().getColumnSetup(columnPath).isEncrypted();\n    }\n\n    private ColumnChunkMetaData getColumnChunkMetaData(ColumnDescriptor columnDescriptor)\n            throws IOException\n    {\n        for (ColumnChunkMetaData metadata : currentBlockMetadata.getColumns()) {\n            if (!HiddenColumnChunkMetaData.isHiddenColumn(metadata) && metadata.getPath().equals(ColumnPath.get(columnDescriptor.getPath()))) {\n                return metadata;\n            }\n        }\n        throw new ParquetCorruptionException(\"Metadata is missing for column: %s\", columnDescriptor);\n    }\n\n    private void initializeColumnReaders()\n    {\n        for (PrimitiveColumnIO columnIO : columns) {\n            RichColumnDescriptor column = new RichColumnDescriptor(columnIO.getColumnDescriptor(), columnIO.getType().asPrimitiveType());\n            columnReaders[columnIO.getId()] = ColumnReaderFactory.createReader(column, batchReadEnabled);\n\n            if (enableVerification) {\n                verificationColumnReaders[columnIO.getId()] = ColumnReaderFactory.createReader(column, false);\n            }\n        }\n    }\n\n    public Block readBlock(Field field)\n            throws IOException\n    {\n        return readColumnChunk(field).getBlock();","sourceCodeStart":509,"sourceCodeEnd":545,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ParquetReader.java#L509-L545","documentation":"Lookup guard for encrypted Parquet files: the column's decryption setup (ColumnPath -> ordinal) is absent from the file's encryption metadata, so a page reader cannot be built. Means the footer encryption metadata is incomplete or references a column that does not exist.","triggerScenarios":"Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ParquetReader.java:527 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Confirm the file's encryption metadata lists every encrypted column","Regenerate the file with a writer that emits complete encryption metadata","Verify the schema path in the query matches the file's column paths"],"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"}