{"record":{"id":"98aa63dad41e415d","repo":"apache/druid","slug":"unknown-version-98aa63","errorCode":null,"errorMessage":"Unknown version ","messagePattern":"Unknown version ","errorType":"exception","errorClass":"org.apache.druid.java.util.common.RE","httpStatus":null,"severity":"error","filePath":"processing/src/main/java/org/apache/druid/segment/nested/ScalarLongColumnAndIndexSupplier.java","lineNumber":171,"sourceCode":"        final Supplier<ColumnarLongs> longs = CompressedColumnarLongsSupplier.fromByteBuffer(\n            longsValueColumn,\n            byteOrder,\n            columnBuilder.getFileMapper()\n        );\n        return new ScalarLongColumnAndIndexSupplier(\n            longDictionarySupplier,\n            encodedCol,\n            longs,\n            rBitmaps,\n            bitmapSerdeFactory.getBitmapFactory(),\n            columnConfig\n        );\n      }\n      catch (IOException ex) {\n        throw new RE(ex, \"Failed to deserialize V%s column.\", version);\n      }\n    } else {\n      throw new RE(\"Unknown version \" + version);\n    }\n  }\n\n  private final Supplier<FixedIndexed<Long>> longDictionarySupplier;\n\n  private final Supplier<ColumnarInts> encodedValuesSupplier;\n  private final Supplier<ColumnarLongs> valueColumnSupplier;\n\n  private final GenericIndexed<ImmutableBitmap> valueIndexes;\n\n  private final BitmapFactory bitmapFactory;\n\n  private final ImmutableBitmap nullValueBitmap;\n  private final ColumnConfig columnConfig;\n\n  private ScalarLongColumnAndIndexSupplier(\n      Supplier<FixedIndexed<Long>> longDictionarySupplier,\n      Supplier<ColumnarInts> encodedValuesSupplier,","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/processing/src/main/java/org/apache/druid/segment/nested/ScalarLongColumnAndIndexSupplier.java#L153-L189","documentation":"ScalarLongColumnAndIndexSupplier.read() only recognizes the nested long-column versions it implements (V1). If the version byte read from the segment does not match any supported version, it throws this generic String to signal the on-disk format is unknown to this reader.","triggerScenarios":"Reading a nested long column written with a version byte newer than this Druid version supports; corrupted segment file where the version byte is invalid.","commonSituations":"Cluster version skew during upgrades (new writer, old reader); downgraded historicals reading segments produced after a format change; damaged segment files.","solutions":["Upgrade the reading Druid process to a version supporting the column's format version","Re-ingest/re-merge the segment with the current reader-compatible Druid version so the column is written as V1","Replace the segment from a good replica if the version byte appears corrupted","Align druid-processing versions across all nodes writing and reading segments"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Reject segments from unknown writer versions before loading them\nif (compareVersions(segmentMetadata.getVersion(), maxReaderSupportedVersion) > 0) {\n  throw new IllegalStateException(\"Segment version \" + segmentMetadata.getVersion()\n      + \" > supported \" + maxReaderSupportedVersion + \"; upgrade or re-ingest\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  // load nested long column\n} catch (RuntimeException e) {\n  if (e.getMessage() != null && e.getMessage().startsWith(\"Unknown version\")) {\n    LOG.warn(e, \"Unknown nested-column version; marking segment for re-ingest\");\n    segmentRegistry.markForReingest(segmentId);\n  } else {\n    throw e;\n  }\n}","preventionTips":["Upgrade readers before introducing writers on a new Druid version in rolling upgrades","Avoid downgrading historicals without first re-ingesting or dropping newer-format segments","Keep a cluster-wide pinned druid-processing version in deployment tooling","Alert on 'Unknown version' log lines during segment load; they indicate writer/reader skew"],"tags":["segment-deserialization","version-compatibility","druid-processing"],"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-17T15:17:12.973Z"}