{"record":{"id":"042427821c94a353","repo":"prestodb/presto","slug":"io-error","errorCode":"IO_ERROR","errorMessage":"Caught IO error from serializer on read","messagePattern":"Caught IO error from serializer on read","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java","lineNumber":182,"sourceCode":"            nanoStart = System.nanoTime();\n        }\n\n        try {\n            if (iterator.hasNext()) {\n                serializer.reset();\n                Entry<Key, Value> row = iterator.next();\n                for (Entry<Key, Value> entry : WholeRowIterator.decodeRow(row.getKey(), row.getValue()).entrySet()) {\n                    bytesRead += entry.getKey().getSize() + entry.getValue().getSize();\n                    serializer.deserialize(entry);\n                }\n                return true;\n            }\n            else {\n                return false;\n            }\n        }\n        catch (IOException e) {\n            throw new PrestoException(IO_ERROR, \"Caught IO error from serializer on read\", e);\n        }\n    }\n\n    @Override\n    public boolean isNull(int field)\n    {\n        checkArgument(field < columnHandles.size(), \"Invalid field index\");\n        return serializer.isNull(fieldToColumnName[field]);\n    }\n\n    @Override\n    public boolean getBoolean(int field)\n    {\n        checkFieldType(field, BOOLEAN);\n        return serializer.getBoolean(fieldToColumnName[field]);\n    }\n\n    @Override","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java#L164-L200","documentation":"Thrown while advancing the Accumulo cursor: the row fetched from the iterator could not be decoded by the serializer (deserialize or WholeRowIterator decoding raised an IO error), so the scan cannot continue on this split.","triggerScenarios":"Thrown at presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java:182 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the Accumulo tablet server is healthy and the row was not corrupted","Check that the table's serializer matches the column encodings written at ingest","Exclude or re-write the offending row/key-value if data is corrupted"],"exampleFix":null,"handlingStrategy":"try-catch","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"}