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

  1. Align historical/ingestion node versions so readers understand the writer's segment format.
  2. Re-generate segments with a compatible Druid version (re-index).
  3. Check the buffer position - the version byte must be the first byte of the supplier payload.
  4. 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

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)