diff --git a/rust/lance-encoding/src/encodings/logical/primitive.rs b/rust/lance-encoding/src/encodings/logical/primitive.rs index 3ec5ff2cf42..0485fa5d897 100644 --- a/rust/lance-encoding/src/encodings/logical/primitive.rs +++ b/rust/lance-encoding/src/encodings/logical/primitive.rs @@ -3404,6 +3404,9 @@ impl PrimitiveFieldEncoder { let part_size = bit_util::ceil(array.len(), num_parts); for _ in 0..num_parts { let avail = array.len() - offset; + if avail == 0 { + break; + } let chunk_size = avail.min(part_size); let part = array.slice(offset, chunk_size); let task = self.create_encode_task(vec![part])?;