elips/docs
Chapter IX · observability

Error model

Errors are typed. Catch them with intent.

text
std::runtime_error
└── elips::ElipsError
    ├── ConfigError              // identity / dimension / embedder mismatch
    ├── StorageError             // WAL / segments / lock / read-only writes
    ├── DimensionMismatch        // wrong-shape vector
    ├── InvalidVector            // NaN / Inf
    ├── NotFound                 // unknown id
    ├── CollectionNotFoundError  // missing collection
    ├── LockConflict             // writer-lock contention
    ├── NotTrainedError          // query before train / compress
    ├── BackendUnavailableError  // requested GPU backend absent
    └── ParseError               // malformed EQL
python
try:
    notes.add(embedding=[float("nan")] * 4)
except elips.InvalidVector as e:
    log.warning("rejected: %s", e)