From e019ad7692f64be9ae3e9fe88197d544a83a5bcb Mon Sep 17 00:00:00 2001 From: vuthanhtung2412 Date: Fri, 21 Mar 2025 15:41:31 +0100 Subject: [PATCH] Display more detailed error message instead of panic --- crates/milli/src/update/new/indexer/write.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/milli/src/update/new/indexer/write.rs b/crates/milli/src/update/new/indexer/write.rs index 8618b4b21..2df19bcd6 100644 --- a/crates/milli/src/update/new/indexer/write.rs +++ b/crates/milli/src/update/new/indexer/write.rs @@ -13,7 +13,7 @@ use crate::index::IndexEmbeddingConfig; use crate::progress::Progress; use crate::update::settings::InnerIndexSettings; use crate::vector::{ArroyWrapper, Embedder, EmbeddingConfigs, Embeddings}; -use crate::{Error, Index, InternalError, Result}; +use crate::{Error, Index, InternalError, Result, UserError}; pub fn write_to_db( mut writer_receiver: WriterBbqueueReceiver<'_>, @@ -218,6 +218,12 @@ pub fn write_from_bbqueue( arroy_writers.get(&embedder_id).expect("requested a missing embedder"); let mut embeddings = Embeddings::new(*dimensions); let all_embeddings = asvs.read_all_embeddings_into_vec(frame, aligned_embedding); + if all_embeddings.len() != *dimensions { + return Err(Error::UserError(UserError::InvalidVectorDimensions { + expected: *dimensions, + found: all_embeddings.len(), + })); + } embeddings.append(all_embeddings.to_vec()).unwrap(); writer.del_items(wtxn, *dimensions, docid)?; writer.add_items(wtxn, docid, &embeddings)?;