weaviate/weaviate · error
unexpected tomstoned value, unsupported version %d
Error message
unexpected tomstoned value, unsupported version %d
What it means
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.
Source
Thrown at adapters/repos/db/lsmkv/memtable.go:432
m.writesSinceLastSync = true
return nil
}
func tombstonedValue(deletionTime time.Time) []byte {
var tombstonedVal [1 + 8]byte // version=1 deletionTime
tombstonedVal[0] = 1
binary.LittleEndian.PutUint64(tombstonedVal[1:], uint64(deletionTime.UnixMilli()))
return tombstonedVal[:]
}
func errorFromTombstonedValue(tombstonedVal []byte) error {
if len(tombstonedVal) == 0 {
return lsmkv.Deleted
}
if tombstonedVal[0] != 1 {
return fmt.Errorf("unexpected tomstoned value, unsupported version %d", tombstonedVal[0])
}
if len(tombstonedVal) != 9 {
return fmt.Errorf("unexpected tomstoned value, invalid length")
}
deletionTimeUnixMilli := int64(binary.LittleEndian.Uint64(tombstonedVal[1:]))
return lsmkv.NewErrDeleted(time.UnixMilli(deletionTimeUnixMilli))
}
func (m *Memtable) createSecondaryKeys(opts []SecondaryKeyOption) ([][]byte, error) {
var secondaryKeys [][]byte
if m.secondaryIndices > 0 {
secondaryKeys = make([][]byte, m.secondaryIndices)
for _, opt := range opts {
if err := opt(secondaryKeys); err != nil {
return nil, errView on GitHub (pinned to 75aa4b6d11)
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
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at adapters/repos/db/lsmkv/memtable.go:432 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/49460404c70eb46b.
Report an issue: GitHub.