From 6237dd51cb8711df528b360100e080d5fc73d6c2 Mon Sep 17 00:00:00 2001 From: Yujong Lee Date: Mon, 21 Sep 2026 21:22:59 +0000 Subject: [PATCH] fix(cache-redis-semantic): isolate on an incompatible index after a lost create race Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../crates/cache-redis-semantic/src/cache.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/litellm-rust/crates/cache-redis-semantic/src/cache.rs b/litellm-rust/crates/cache-redis-semantic/src/cache.rs index cd79f067296..4181ce719e3 100644 --- a/litellm-rust/crates/cache-redis-semantic/src/cache.rs +++ b/litellm-rust/crates/cache-redis-semantic/src/cache.rs @@ -70,14 +70,14 @@ impl Inner { let name = match index_compatible(connection, &self.index_name, dims)? { Some(true) => self.index_name.clone(), Some(false) => self.isolated_index(connection, dims)?, - None => { - if create_index(connection, &self.index_name, dims).is_err() - && index_compatible(connection, &self.index_name, dims)? != Some(true) - { - return Err(Error::Unavailable); - } - self.index_name.clone() - } + None => match create_index(connection, &self.index_name, dims) { + Ok(()) => self.index_name.clone(), + Err(_) => match index_compatible(connection, &self.index_name, dims)? { + Some(true) => self.index_name.clone(), + Some(false) => self.isolated_index(connection, dims)?, + None => return Err(Error::Unavailable), + }, + }, }; let _ = self.resolved_index.set(name.clone()); Ok(name)