prestodb/presto · error · IllegalArgumentException
Unknown block encoding %s
Error message
Unknown block encoding %s
What it means
Deserialization lookup failure: the encoding name read from the wire is not present in the block-encoding registry, so the incoming block cannot be decoded (typically a version or registration mismatch between peers).
Source
Thrown at presto-common/src/main/java/com/facebook/presto/common/block/BlockEncodingManager.java:71
public void addBlockEncoding(BlockEncoding blockEncoding)
{
requireNonNull(blockEncoding, "blockEncoding is null");
BlockEncoding existingEntry = blockEncodings.putIfAbsent(blockEncoding.getName(), blockEncoding);
if (existingEntry != null) {
throw new IllegalArgumentException(format("Encoding %s is already registered", blockEncoding.getName()));
}
}
@Override
public Block readBlock(SliceInput input)
{
// read the encoding name
String encodingName = readLengthPrefixedString(input);
// look up the encoding factory
BlockEncoding blockEncoding = blockEncodings.get(encodingName);
if (blockEncoding == null) {
throw new IllegalArgumentException(format("Unknown block encoding %s", encodingName));
}
// load read the encoding factory from the output stream
return blockEncoding.readBlock(this, input);
}
@Override
public void writeBlock(SliceOutput output, Block block)
{
while (true) {
// get the encoding name
String encodingName = block.getEncodingName();
// look up the BlockEncoding
BlockEncoding blockEncoding = blockEncodings.get(encodingName);
// see if a replacement block should be written instead
Optional<Block> replacementBlock = blockEncoding.replacementBlockForWrite(block);View on GitHub (pinned to 55bb57d202)
Solutions
- Ensure sender and receiver register the same block encodings
- Align client/server/worker versions so encoding names match
- Register the custom encoding before reading blocks that use it
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at presto-common/src/main/java/com/facebook/presto/common/block/BlockEncodingManager.java:71 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/a895fa2ab2dfc9cb.
Report an issue: GitHub.