diff --git a/crates/meilisearch-types/src/error.rs b/crates/meilisearch-types/src/error.rs index 77c324d97..94ca538fe 100644 --- a/crates/meilisearch-types/src/error.rs +++ b/crates/meilisearch-types/src/error.rs @@ -384,7 +384,6 @@ UnsupportedMediaType , InvalidRequest , UNSUPPORTED_MEDIA // Experimental features VectorEmbeddingError , InvalidRequest , BAD_REQUEST ; NotFoundSimilarId , InvalidRequest , BAD_REQUEST ; -NotFoundDocumentId , InvalidRequest , BAD_REQUEST ; InvalidDocumentEditionContext , InvalidRequest , BAD_REQUEST ; InvalidDocumentEditionFunctionFilter , InvalidRequest , BAD_REQUEST ; EditDocumentsByFunctionError , InvalidRequest , BAD_REQUEST diff --git a/crates/meilisearch/src/routes/indexes/documents.rs b/crates/meilisearch/src/routes/indexes/documents.rs index fb173ef3e..50eec46fe 100644 --- a/crates/meilisearch/src/routes/indexes/documents.rs +++ b/crates/meilisearch/src/routes/indexes/documents.rs @@ -1513,11 +1513,9 @@ fn retrieve_documents>( let mut candidates = if let Some(ids) = ids { let external_document_ids = index.external_documents_ids(); let mut candidates = RoaringBitmap::new(); - for (index, id) in ids.iter().enumerate() { + for id in ids.iter() { let Some(docid) = external_document_ids.get(&rtxn, id)? else { - let error = MeilisearchHttpError::DocumentNotFound(id.clone().into_inner()); - let msg = format!("In `.ids[{index}]`: {error}"); - return Err(ResponseError::from_msg(msg, Code::NotFoundDocumentId)); + continue; }; candidates.insert(docid); } diff --git a/crates/meilisearch/tests/documents/get_documents.rs b/crates/meilisearch/tests/documents/get_documents.rs index bcd81043f..f87a18b9f 100644 --- a/crates/meilisearch/tests/documents/get_documents.rs +++ b/crates/meilisearch/tests/documents/get_documents.rs @@ -687,13 +687,23 @@ async fn get_document_not_found_ids() { let (response, code) = index.fetch_documents(json!({"ids": ["0", 3, 42] })).await; let (response2, code2) = index.get_all_documents_raw("?ids=0,3,42").await; - snapshot!(code, @"400 Bad Request"); + // the document with id 42 is not in the results since it doesn't exist + // however, no error is raised + snapshot!(code, @"200 OK"); snapshot!(json_string!(response, { ".enqueuedAt" => "[date]" }), @r###" { - "message": "In `.ids[2]`: Document `42` not found.", - "code": "not_found_document_id", - "type": "invalid_request", - "link": "https://docs.meilisearch.com/errors#not_found_document_id" + "results": [ + { + "id": 0, + "color": "red" + }, + { + "id": 3 + } + ], + "offset": 0, + "limit": 20, + "total": 2 } "###); assert_eq!(code, code2);