Skip to main content

cognee_lib/api/
error.rs

1//! Shared error types for the high-level API functions.
2
3use cognee_database::DatabaseError;
4use cognee_delete::DeleteError;
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum DatasetError {
9    #[error("permission denied")]
10    PermissionDenied,
11
12    #[error("dataset not found")]
13    NotFound,
14
15    #[error("ACL not configured: call with_acl() before create_authorized_dataset()")]
16    AclNotConfigured,
17
18    #[error("database error: {0}")]
19    Database(#[from] DatabaseError),
20
21    #[error("delete error: {0}")]
22    Delete(#[from] DeleteError),
23
24    #[error("I/O error: {0}")]
25    Io(#[from] std::io::Error),
26}
27
28/// Unified error type for top-level API operations (forget, update, prune,
29/// recall, remember, improve).
30#[derive(Debug, Error)]
31pub enum ApiError {
32    #[error("Delete error: {0}")]
33    DeleteErr(cognee_delete::DeleteError),
34
35    #[error("Ingestion error: {0}")]
36    Ingestion(String),
37
38    #[error("Cognify error: {0}")]
39    Cognify(String),
40
41    #[error("Search error: {0}")]
42    Search(String),
43
44    #[error("Session error: {0}")]
45    Session(#[from] cognee_session::SessionError),
46
47    #[error("Storage error: {0}")]
48    Storage(#[from] cognee_storage::StorageError),
49
50    #[error("Graph error: {0}")]
51    Graph(#[from] cognee_graph::GraphDBError),
52
53    #[error("Vector error: {0}")]
54    Vector(#[from] cognee_vector::VectorDBError),
55
56    #[error("Memify error: {0}")]
57    Memify(String),
58
59    #[error("Improve error: {0}")]
60    Improve(String),
61
62    #[error("Invalid argument: {0}")]
63    InvalidArgument(String),
64
65    #[error("Background task join error: {0}")]
66    Join(#[from] tokio::task::JoinError),
67}
68
69impl From<cognee_delete::DeleteError> for ApiError {
70    fn from(e: cognee_delete::DeleteError) -> Self {
71        ApiError::DeleteErr(e)
72    }
73}