diff --git a/crates/index-scheduler/src/error.rs b/crates/index-scheduler/src/error.rs index 5580fea6a..cb798b385 100644 --- a/crates/index-scheduler/src/error.rs +++ b/crates/index-scheduler/src/error.rs @@ -155,6 +155,20 @@ pub enum Error { RollbackFailed { index: String, rollback_outcome: RollbackOutcome }, #[error(transparent)] UnrecoverableError(Box), + #[error("The index scheduler is in version v{}.{}.{}, but Meilisearch is in version v{}.{}.{}.\n - hint: start the correct version of Meilisearch, or consider updating your database. See also ", + index_scheduler_version.0, index_scheduler_version.1, index_scheduler_version.2, + package_version.0, package_version.1, package_version.2)] + IndexSchedulerVersionMismatch { + index_scheduler_version: (u32, u32, u32), + package_version: (u32, u32, u32), + }, + #[error("Index `{index}` is in version v{}.{}.{}, but Meilisearch is in version v{}.{}.{}.\n - note: this is an internal error, please consider filing a bug report: ", + index_version.0, index_version.1, index_version.2, package_version.0, package_version.1, package_version.2)] + IndexVersionMismatch { + index: String, + index_version: (u32, u32, u32), + package_version: (u32, u32, u32), + }, #[error(transparent)] HeedTransaction(heed::Error), @@ -212,6 +226,8 @@ impl Error { | Error::CorruptedTaskQueue | Error::DatabaseUpgrade(_) | Error::UnrecoverableError(_) + | Error::IndexSchedulerVersionMismatch { .. } + | Error::IndexVersionMismatch { .. } | Error::RollbackFailed { .. } | Error::HeedTransaction(_) => false, #[cfg(test)] @@ -280,6 +296,8 @@ impl ErrorCode for Error { Error::DatabaseUpgrade(_) => Code::Internal, Error::RollbackFailed { .. } => Code::Internal, Error::UnrecoverableError(_) => Code::Internal, + Error::IndexSchedulerVersionMismatch { .. } => Code::Internal, + Error::IndexVersionMismatch { .. } => Code::Internal, Error::CreateBatch(_) => Code::Internal, // This one should never be seen by the end user