{"record":{"id":"768f37ebe933dd13","repo":"apache/druid","slug":"unsupported-multi-value-version-s","errorCode":null,"errorMessage":"Unsupported multi-value version[%s]","messagePattern":"Unsupported multi-value version\\[(.+?)\\]","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"critical","filePath":"processing/src/main/java/org/apache/druid/segment/serde/DictionaryEncodedColumnPartSerde.java","lineNumber":464,"sourceCode":"          }\n          case UNCOMPRESSED_WITH_FLAGS: {\n            if (Feature.MULTI_VALUE.isSet(flags)) {\n              return VSizeColumnarMultiInts.readFromByteBuffer(buffer);\n            } else {\n              throw new IAE(\"Unrecognized multi-value flag[%d] for version[%s]\", flags, version);\n            }\n          }\n          case COMPRESSED: {\n            if (Feature.MULTI_VALUE.isSet(flags)) {\n              return CompressedVSizeColumnarMultiIntsSupplier.fromByteBuffer(buffer, byteOrder, fileMapper);\n            } else if (Feature.MULTI_VALUE_V3.isSet(flags)) {\n              return V3CompressedVSizeColumnarMultiIntsSupplier.fromByteBuffer(buffer, byteOrder, fileMapper);\n            } else {\n              throw new IAE(\"Unrecognized multi-value flag[%d] for version[%s]\", flags, version);\n            }\n          }\n          default:\n            throw new IAE(\"Unsupported multi-value version[%s]\", version);\n        }\n      }\n    };\n  }\n\n  private static boolean mustWriteFlags(final int flags)\n  {\n    // Flags that are not implied by version codes < COMPRESSED must be written. This includes MULTI_VALUE_V3.\n    return flags != NO_FLAGS && flags != Feature.MULTI_VALUE.getMask();\n  }\n}\n","sourceCodeStart":446,"sourceCodeEnd":476,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/processing/src/main/java/org/apache/druid/segment/serde/DictionaryEncodedColumnPartSerde.java#L446-L476","documentation":"readMultiValuedColumn handles three known VERSION values (UNCOMPRESSED_SINGLE_VALUE-family, UNCOMPRESSED_WITH_FLAGS, COMPRESSED). A multi-valued column stored with any other VERSION enum value triggers this IAE in the default branch. This is a format-compatibility failure: the segment was written by an unknown/incompatible writer.","triggerScenarios":"Deserializing a multi-valued dictionary-encoded string column whose VERSION enum value falls outside the switch's known cases during segment load.","commonSituations":"Downgraded Druid reading newer-format segments; segment corruption flipping the version enum ordinal; hand-edited or converted segment metadata.","solutions":["Upgrade the Druid nodes loading the segment to the version that wrote it.","Re-ingest the affected data so segments are written in a format the current cluster supports.","Restore corrupt segments from deep storage.","Standardize one Druid version across the cluster before sharing segment storage."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    return adapter.getColumn(\"multiDim\");\n} catch (IAE e) {\n    if (e.getMessage().contains(\"Unsupported multi-value version\")) {\n        throw new IllegalStateException(\"Segment written by incompatible Druid version; upgrade required\", e);\n    }\n    throw e;\n}","preventionTips":["Run a homogeneous Druid version cluster.","Check release notes for segment-format changes before upgrades and downgrades.","Re-ingest after format-changing upgrades when backward compatibility is not guaranteed."],"tags":["druid","segment","version-mismatch","column","compatibility"],"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-14T11:17:12.474Z"}