diff --git a/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs b/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs index 00ff1b9a0..17f882636 100644 --- a/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs +++ b/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs @@ -6,6 +6,7 @@ use serde_json::Value; use super::{ audit::build_failure_audit, + budget::{effective_request_timeout_ms, request_budget_exhausted_error}, constants::{GPT_IMAGE_2_MODEL, VECTOR_ENGINE_PROVIDER}, error::PlatformImageError, request::vector_engine_images_edit_url, @@ -132,8 +133,20 @@ pub async fn create_vector_engine_raw_image_edit( ); } + let Some(request_timeout_ms) = + effective_request_timeout_ms(settings.request_timeout_ms, settings.request_deadline) + else { + return Err(request_budget_exhausted_error( + url.as_str(), + failure_context, + Some(GPT_IMAGE_2_MODEL), + Some(started_at.elapsed().as_millis() as u64), + prompt_chars, + reference_image_count, + )); + }; let client = reqwest::Client::builder() - .timeout(Duration::from_millis(settings.request_timeout_ms.max(1))) + .timeout(Duration::from_millis(request_timeout_ms)) .http1_only() .build() .map_err(|error| invalid_config(error.to_string()))?;