diff --git a/crates/index-scheduler/src/error.rs b/crates/index-scheduler/src/error.rs index 280127d04..5580fea6a 100644 --- a/crates/index-scheduler/src/error.rs +++ b/crates/index-scheduler/src/error.rs @@ -2,6 +2,7 @@ use std::fmt::Display; use meilisearch_types::batches::BatchId; use meilisearch_types::error::{Code, ErrorCode}; +use meilisearch_types::milli::index::RollbackOutcome; use meilisearch_types::tasks::{Kind, Status}; use meilisearch_types::{heed, milli}; use thiserror::Error; @@ -150,6 +151,8 @@ pub enum Error { CorruptedTaskQueue, #[error(transparent)] DatabaseUpgrade(Box), + #[error("Failed to rollback for index `{index}`: {rollback_outcome} ")] + RollbackFailed { index: String, rollback_outcome: RollbackOutcome }, #[error(transparent)] UnrecoverableError(Box), #[error(transparent)] @@ -209,6 +212,7 @@ impl Error { | Error::CorruptedTaskQueue | Error::DatabaseUpgrade(_) | Error::UnrecoverableError(_) + | Error::RollbackFailed { .. } | Error::HeedTransaction(_) => false, #[cfg(test)] Error::PlannedFailure => false, @@ -274,6 +278,7 @@ impl ErrorCode for Error { Error::CorruptedTaskQueue => Code::Internal, Error::CorruptedDump => Code::Internal, Error::DatabaseUpgrade(_) => Code::Internal, + Error::RollbackFailed { .. } => Code::Internal, Error::UnrecoverableError(_) => Code::Internal, Error::CreateBatch(_) => Code::Internal,