{"record":{"id":"49460404c70eb46b","repo":"weaviate/weaviate","slug":"unexpected-tomstoned-value-unsupported-version-d","errorCode":null,"errorMessage":"unexpected tomstoned value, unsupported version %d","messagePattern":"unexpected tomstoned value, unsupported version (.+?)","errorType":"exception","errorClass":null,"httpStatus":500,"severity":"error","filePath":"adapters/repos/db/lsmkv/memtable.go","lineNumber":432,"sourceCode":"\tm.writesSinceLastSync = true\n\n\treturn nil\n}\n\nfunc tombstonedValue(deletionTime time.Time) []byte {\n\tvar tombstonedVal [1 + 8]byte // version=1 deletionTime\n\ttombstonedVal[0] = 1\n\tbinary.LittleEndian.PutUint64(tombstonedVal[1:], uint64(deletionTime.UnixMilli()))\n\treturn tombstonedVal[:]\n}\n\nfunc errorFromTombstonedValue(tombstonedVal []byte) error {\n\tif len(tombstonedVal) == 0 {\n\t\treturn lsmkv.Deleted\n\t}\n\n\tif tombstonedVal[0] != 1 {\n\t\treturn fmt.Errorf(\"unexpected tomstoned value, unsupported version %d\", tombstonedVal[0])\n\t}\n\n\tif len(tombstonedVal) != 9 {\n\t\treturn fmt.Errorf(\"unexpected tomstoned value, invalid length\")\n\t}\n\n\tdeletionTimeUnixMilli := int64(binary.LittleEndian.Uint64(tombstonedVal[1:]))\n\n\treturn lsmkv.NewErrDeleted(time.UnixMilli(deletionTimeUnixMilli))\n}\n\nfunc (m *Memtable) createSecondaryKeys(opts []SecondaryKeyOption) ([][]byte, error) {\n\tvar secondaryKeys [][]byte\n\tif m.secondaryIndices > 0 {\n\t\tsecondaryKeys = make([][]byte, m.secondaryIndices)\n\t\tfor _, opt := range opts {\n\t\t\tif err := opt(secondaryKeys); err != nil {\n\t\t\t\treturn nil, err","sourceCodeStart":414,"sourceCodeEnd":450,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/adapters/repos/db/lsmkv/memtable.go#L414-L450","documentation":"Data-format guard in errorFromTombstonedValue: the stored tombstone value's version byte is not 1 (the only supported format: 1 version byte + 8-byte little-endian UnixMilli). Firing means the on-disk/memtable value was written by an incompatible or corrupt writer, so a valid sentinel error cannot be derived from it.","triggerScenarios":"Thrown at adapters/repos/db/lsmkv/memtable.go:432 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Investigate how the value with an unknown tombstone version was written","Check for corruption or downgraded/patched writers on this shard","Restore the affected shard from backup if corruption is confirmed"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"75aa4b6d11f8818305aafd4440b4e32794f7ca04","analyzedAt":"2026-09-04T14:58:20.392Z","contentChangedAt":"2026-09-04T14:58:20.392Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}