# X_ENTITY_SEALED_PREDICATE

## Means

a sealed column is read by a predicate, an order or a rule the database evaluates

## Typical cause

a `.sealed()` column in `where`, `andWhere`, `orderBy`, `countBy`, an aggregate, a filtered write's filter, an index or an invariant. The database holds ciphertext, so every comparison there is a comparison of ciphertexts: without `lookup` nothing matches, and with it only equality does — never an order, a range or `like`

## Fix

edit the call the cause names — find the row by another column, or declare the column `text().sealed({ lookup: true })` to allow equality (`where` / `in` / `.unique()`): equal plaintexts then store as visibly equal ciphertexts, so never for a low-entropy value

[Entity and database](/error-codes#entity-and-database)
