prestodb/presto · error
IO_ERROR
IO_ERROR
Error message
Caught IO error from serializer on read
What it means
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.
Source
Thrown at presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java:182
nanoStart = System.nanoTime();
}
try {
if (iterator.hasNext()) {
serializer.reset();
Entry<Key, Value> row = iterator.next();
for (Entry<Key, Value> entry : WholeRowIterator.decodeRow(row.getKey(), row.getValue()).entrySet()) {
bytesRead += entry.getKey().getSize() + entry.getValue().getSize();
serializer.deserialize(entry);
}
return true;
}
else {
return false;
}
}
catch (IOException e) {
throw new PrestoException(IO_ERROR, "Caught IO error from serializer on read", e);
}
}
@Override
public boolean isNull(int field)
{
checkArgument(field < columnHandles.size(), "Invalid field index");
return serializer.isNull(fieldToColumnName[field]);
}
@Override
public boolean getBoolean(int field)
{
checkFieldType(field, BOOLEAN);
return serializer.getBoolean(fieldToColumnName[field]);
}
@OverrideView on GitHub (pinned to 55bb57d202)
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
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java:182 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
Background: Rust io::Error: what ErrorKind::NotFound, PermissionDenied, and InvalidData actually mean — from real OS failures to library fail-closed refusals — this error's family across 12 libraries.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/042427821c94a353.
Report an issue: GitHub.