apache/druid · error · IllegalArgumentException
Unknown version[ ]
Error message
Unknown version[%s]
What it means
CompressedColumnarLongsSupplier.fromByteBuffer reads the version byte from the serialized long column and throws IllegalArgumentException if it does not match a known version. The bytes are not a recognizable CompressedColumnarLongsSupplier payload in this Druid version.
Solutions
- Align historical/ingestion node versions so readers understand the writer's segment format.
- Re-generate segments with a compatible Druid version (re-index).
- Check the buffer position - the version byte must be the first byte of the supplier payload.
- Re-download the segment file to rule out truncation/corruption.
Example fix
// before: mixed cluster, coordinator on 0.22 writes, historical on 0.19 reads // after: upgrade all historicals to the writer's version before serving new segments
Defensive patterns
Strategy: validation
Validate before calling
// Java
int version = buf.get(buf.position());
if (!SUPPORTED_LONGS_VERSIONS.contains(version)) {
throw new IllegalArgumentException("Unsupported long column version " + version);
} Try / catch
try {
return CompressedColumnarLongsSupplier.fromByteBuffer(buf, order, chunkFactor, compression);
} catch (IllegalArgumentException e) {
throw new SegmentSerializationException("Unknown column format version", e);
} Prevention
- Upgrade all query-serving nodes before ingesting with a newer format.
- Checksum segment files on download.
- Use SegmentMetadata queries to inspect writer versions before rollout.
When it happens
Trigger: Calling fromByteBuffer on a buffer whose version byte is unsupported - segment written by newer Druid with a format this binary predates, truncated/corrupt files, or reading at a wrong offset so a non-version byte is interpreted as the version.
Common situations: Rolling upgrades where historical nodes older than the ingestion version read new segments; manual segment surgery/inspection tools; corrupted deep-storage objects.
Related errors
AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07).
Data as JSON: /api/errors/b98d683d40c3e340.
Report an issue: GitHub.
Appendix: source
Thrown at processing/src/main/java/org/apache/druid/segment/data/CompressedColumnarLongsSupplier.java:151
totalSize,
sizePer,
buffer.asReadOnlyBuffer(),
order,
encoding,
compression,
fileMapper
);
return new CompressedColumnarLongsSupplier(
totalSize,
sizePer,
buffer,
supplier,
compression,
encoding
);
}
throw new IAE("Unknown version[%s]", versionFromBuffer);
}
}
View on GitHub (pinned to 9b90983fd2)