{"record":{"id":"f9a71450bd65384f","repo":"prestodb/presto","slug":"invalid-columnio-received-expected-a-groupcolumni","errorCode":null,"errorMessage":"Invalid ColumnIO received. Expected a GroupColumnIO, but got %s, path=%s","messagePattern":"Invalid ColumnIO received\\. Expected a GroupColumnIO, but got (.+?), path=(.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java","lineNumber":139,"sourceCode":"        return Optional.empty();\n    }\n\n    public static Optional<ColumnIO> findNestedColumnIO(ColumnIO columnIO, List<String> path)\n    {\n        if (columnIO == null) {\n            return Optional.empty();\n        }\n\n        for (String pathElement : path) {\n            if (columnIO instanceof GroupColumnIO) {\n                GroupColumnIO groupColumnIO = (GroupColumnIO) columnIO;\n                columnIO = lookupColumnByName(groupColumnIO, pathElement);\n                if (columnIO == null) {\n                    return Optional.empty();\n                }\n                continue;\n            }\n            throw new IllegalArgumentException(\"Invalid ColumnIO received. Expected a GroupColumnIO, but got \" + columnIO.getClass().getSimpleName() +\n                    \", path=\" + Joiner.on(\".\").join(path));\n        }\n\n        return Optional.of(columnIO);\n    }\n}\n","sourceCodeStart":121,"sourceCodeEnd":146,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java#L121-L146","documentation":"Type guard in findNestedColumnIO: while walking a nested column path, an intermediate element resolves to a ColumnIO that is not a GroupColumnIO, so the remaining path cannot be descended. Fires when a requested nested field path does not match the actual parquet schema structure (e.g. path descends through a primitive).","triggerScenarios":"Thrown at presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java:139 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the nested column path in the query matches the actual parquet schema nesting","Check for stale or mismatched table metadata pointing at a differently structured file"],"exampleFix":null,"handlingStrategy":"type-guard","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"}