{"record":{"id":"b98d683d40c3e340","repo":"apache/druid","slug":"unknown-version-s-b98d68","errorCode":null,"errorMessage":"Unknown version[%s]","messagePattern":"Unknown version\\[(.+?)\\]","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"processing/src/main/java/org/apache/druid/segment/data/CompressedColumnarLongsSupplier.java","lineNumber":151,"sourceCode":"          totalSize,\n          sizePer,\n          buffer.asReadOnlyBuffer(),\n          order,\n          encoding,\n          compression,\n          fileMapper\n      );\n      return new CompressedColumnarLongsSupplier(\n          totalSize,\n          sizePer,\n          buffer,\n          supplier,\n          compression,\n          encoding\n      );\n    }\n\n    throw new IAE(\"Unknown version[%s]\", versionFromBuffer);\n  }\n}\n","sourceCodeStart":133,"sourceCodeEnd":154,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/processing/src/main/java/org/apache/druid/segment/data/CompressedColumnarLongsSupplier.java#L133-L154","documentation":"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.","triggerScenarios":"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.","commonSituations":"Rolling upgrades where historical nodes older than the ingestion version read new segments; manual segment surgery/inspection tools; corrupted deep-storage objects.","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."],"exampleFix":"// before: mixed cluster, coordinator on 0.22 writes, historical on 0.19 reads\n// after: upgrade all historicals to the writer's version before serving new segments","handlingStrategy":"validation","validationCode":"// Java\nint version = buf.get(buf.position());\nif (!SUPPORTED_LONGS_VERSIONS.contains(version)) {\n  throw new IllegalArgumentException(\"Unsupported long column version \" + version);\n}","typeGuard":null,"tryCatchPattern":"try {\n  return CompressedColumnarLongsSupplier.fromByteBuffer(buf, order, chunkFactor, compression);\n} catch (IllegalArgumentException e) {\n  throw new SegmentSerializationException(\"Unknown column format version\", e);\n}","preventionTips":["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."],"tags":["segment-format","version-mismatch","deserialization"],"backgroundTag":"unsupported-enum-value","analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T20:17:13.540Z"}