From 3682b92ee8f4ced5c2159a4281d1e23ad4b8e15d Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Tue, 29 Jul 2025 13:53:48 +0200 Subject: [PATCH] New errors --- crates/meilisearch-types/src/error.rs | 4 ++++ crates/meilisearch/src/error.rs | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/crates/meilisearch-types/src/error.rs b/crates/meilisearch-types/src/error.rs index ab924c9f7..f651b2352 100644 --- a/crates/meilisearch-types/src/error.rs +++ b/crates/meilisearch-types/src/error.rs @@ -235,9 +235,11 @@ InvalidDocumentFields , InvalidRequest , BAD_REQU InvalidDocumentRetrieveVectors , InvalidRequest , BAD_REQUEST ; MissingDocumentFilter , InvalidRequest , BAD_REQUEST ; MissingDocumentEditionFunction , InvalidRequest , BAD_REQUEST ; +InconsistentDocumentChangeHeaders , InvalidRequest , BAD_REQUEST ; InvalidDocumentFilter , InvalidRequest , BAD_REQUEST ; InvalidDocumentSort , InvalidRequest , BAD_REQUEST ; InvalidDocumentGeoField , InvalidRequest , BAD_REQUEST ; +InvalidHeaderValue , InvalidRequest , BAD_REQUEST ; InvalidVectorDimensions , InvalidRequest , BAD_REQUEST ; InvalidVectorsType , InvalidRequest , BAD_REQUEST ; InvalidDocumentId , InvalidRequest , BAD_REQUEST ; @@ -266,7 +268,9 @@ InvalidMultiSearchRemote , InvalidRequest , BAD_REQU InvalidMultiSearchWeight , InvalidRequest , BAD_REQUEST ; InvalidNetworkRemotes , InvalidRequest , BAD_REQUEST ; InvalidNetworkSelf , InvalidRequest , BAD_REQUEST ; +InvalidNetworkSharding , InvalidRequest , BAD_REQUEST ; InvalidNetworkSearchApiKey , InvalidRequest , BAD_REQUEST ; +InvalidNetworkWriteApiKey , InvalidRequest , BAD_REQUEST ; InvalidNetworkUrl , InvalidRequest , BAD_REQUEST ; InvalidSearchAttributesToSearchOn , InvalidRequest , BAD_REQUEST ; InvalidSearchAttributesToCrop , InvalidRequest , BAD_REQUEST ; diff --git a/crates/meilisearch/src/error.rs b/crates/meilisearch/src/error.rs index 8d4430f07..c90c7c226 100644 --- a/crates/meilisearch/src/error.rs +++ b/crates/meilisearch/src/error.rs @@ -9,6 +9,8 @@ use meilisearch_types::milli::OrderBy; use serde_json::Value; use tokio::task::JoinError; +use crate::routes::indexes::{PROXY_ORIGIN_REMOTE_HEADER, PROXY_ORIGIN_TASK_UID_HEADER}; + #[derive(Debug, thiserror::Error)] pub enum MeilisearchHttpError { #[error("A Content-Type header is missing. Accepted values for the Content-Type header are: {}", @@ -80,6 +82,16 @@ pub enum MeilisearchHttpError { MissingSearchHybrid, #[error("Invalid request: both `media` and `vector` parameters are present.")] MediaAndVector, + #[error("Inconsistent `Origin` headers: {} was provided but {} is missing.\n - Hint: Either both headers should be provided, or none of them", if *is_remote_missing { + PROXY_ORIGIN_TASK_UID_HEADER + } else { PROXY_ORIGIN_REMOTE_HEADER }, + if *is_remote_missing { + PROXY_ORIGIN_REMOTE_HEADER + } else { PROXY_ORIGIN_TASK_UID_HEADER } +)] + InconsistentOriginHeaders { is_remote_missing: bool }, + #[error("Invalid value for header {header_name}: {msg}")] + InvalidHeaderValue { header_name: &'static str, msg: String }, } impl MeilisearchHttpError { @@ -124,6 +136,10 @@ impl ErrorCode for MeilisearchHttpError { MeilisearchHttpError::InconsistentFacetOrder { .. } => { Code::InvalidMultiSearchFacetOrder } + MeilisearchHttpError::InconsistentOriginHeaders { .. } => { + Code::InconsistentDocumentChangeHeaders + } + MeilisearchHttpError::InvalidHeaderValue { .. } => Code::InvalidHeaderValue, } } }