diff --git a/crates/mem-llm/src/embeddings.rs b/crates/mem-llm/src/embeddings.rs index 932e4a2..1883bd1 100644 --- a/crates/mem-llm/src/embeddings.rs +++ b/crates/mem-llm/src/embeddings.rs @@ -166,8 +166,18 @@ impl EmbeddingsClient { } let resp = builder.json(&req).send().await?; - let _status = resp.status(); - let body: EmbeddingResponse = resp.json().await?; + let status = resp.status(); + let raw_body = resp.text().await?; + + if !status.is_success() { + tracing::error!("Embedding API returned {}: {}", status, &raw_body[..raw_body.len().min(500)]); + return Err(anyhow!("Embedding API returned {}: {}", status, &raw_body[..raw_body.len().min(200)])); + } + + let body: EmbeddingResponse = serde_json::from_str(&raw_body).map_err(|e| { + tracing::error!("Failed to parse embedding response: {}. Raw body: {}", e, &raw_body[..raw_body.len().min(500)]); + anyhow!("Failed to parse embedding response: {}. Raw: {}", e, &raw_body[..raw_body.len().min(200)]) + })?; match body { EmbeddingResponse::Error { error } => {