Ultimate

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

Listed under Entity and database

This page as markdown