keri_controller/
error.rs

1use keri_core::{
2    actor::prelude::VersionError, database::redb::RedbError,
3    event_message::cesr_adapter::ParseError, oobi::Scheme, prefix::IdentifierPrefix,
4    processor::validator::VerificationError,
5};
6use thiserror::Error;
7
8use crate::{
9    communication::SendingError,
10    identifier::{mechanics::MechanicsError, query::WatcherResponseError},
11};
12
13#[derive(Error, Debug)]
14pub enum ControllerError {
15    #[error("Redb error: {0}")]
16    RedbError(#[from] RedbError),
17
18    #[cfg(feature = "query_cache")]
19    #[error("SQL error: {0}")]
20    SQLError(#[from] rusqlite::Error),
21
22    #[error(transparent)]
23    SendingError(#[from] SendingError),
24
25    #[error("Keri event parsing error: {0}")]
26    ParseError(#[from] ParseError),
27
28    #[error("Unknown identifier")]
29    UnknownIdentifierError,
30
31    #[error("transparent")]
32    EventProcessingError(#[from] keri_core::error::Error),
33
34    #[error("Keri version error: ")]
35    VersionError(#[from] VersionError),
36
37    #[error("No location for {id} with {scheme:?}")]
38    NoLocationScheme {
39        id: IdentifierPrefix,
40        scheme: Scheme,
41    },
42
43    #[error("Query error: {0}")]
44    QueryArgumentError(String),
45
46    #[error("Cesr error")]
47    CesrFormatError,
48
49    #[error("Wrong signature")]
50    FaultySignature,
51
52    #[error("Verification failed for following elements: {0:?}")]
53    VerificationError(Vec<(VerificationError, String)>),
54
55    #[error(transparent)]
56    TelError(#[from] teliox::error::Error),
57
58    #[error("Error: {0}")]
59    OtherError(String),
60
61    #[error(transparent)]
62    Mechanic(#[from] MechanicsError),
63
64    #[error("Watcher response error: {0}")]
65    WatcherResponseError(#[from] WatcherResponseError),
66}