From 59ea176d4c5787429d70facc5e53cfe6c33ae56f Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 3 Mar 2026 09:52:11 -0500 Subject: [PATCH] simulate job failure --- ...ert_generic_inference_job_for_fal_queue.rs | 1 + ...nference_job_for_fal_queue_mock_failure.rs | 68 ++++++++++++++++++ ...ob_for_fal_queue_with_apriori_job_token.rs | 8 ++- .../src/queries/generic_inference/fal/mod.rs | 1 + .../generate/common/job_failure_test.rs | 7 ++ .../endpoints/generate/common/mod.rs | 1 + .../gemini_25_flash_edit_image_handler.rs | 1 + .../edit/gpt_image_1_edit_image_handler.rs | 1 + .../image/edit/qwen_edit_image_handler.rs | 1 + ...nerate_flux_1_dev_text_to_image_handler.rs | 71 +++++++++++++++++++ ...erate_flux_pro_11_text_to_image_handler.rs | 1 + ...flux_pro_11_ultra_text_to_image_handler.rs | 1 + ...erate_gpt_image_1_text_to_image_handler.rs | 1 + ...eam_v4_multi_function_image_gen_handler.rs | 1 + ...m_v4p5_multi_function_image_gen_handler.rs | 1 + ...ge_1p5_multi_function_image_gen_handler.rs | 1 + ...banana_multi_function_image_gen_handler.rs | 1 + ...na_pro_multi_function_image_gen_handler.rs | 1 + .../generate_kling_1_6_pro_video_handler.rs | 1 + ...generate_kling_2_1_master_video_handler.rs | 1 + .../generate_kling_2_1_pro_video_handler.rs | 1 + ...eedance_1_0_lite_image_to_video_handler.rs | 1 + ...seedance_1_0_pro_image_to_video_handler.rs | 1 + .../generate_veo_2_image_to_video_handler.rs | 1 + ...erate_veo_3_fast_image_to_video_handler.rs | 1 + .../generate_veo_3_image_to_video_handler.rs | 1 + ...bo_pro_multi_function_video_gen_handler.rs | 1 + ...p6_pro_multi_function_video_gen_handler.rs | 1 + ...sora_2_multi_function_video_gen_handler.rs | 1 + ..._2_pro_multi_function_video_gen_handler.rs | 1 + ...1_fast_multi_function_video_gen_handler.rs | 1 + ...eo_3p1_multi_function_video_gen_handler.rs | 1 + 32 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_mock_failure.rs create mode 100644 crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/job_failure_test.rs diff --git a/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue.rs b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue.rs index d4bc6c55e5..dae4ce61b4 100644 --- a/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue.rs +++ b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue.rs @@ -62,6 +62,7 @@ pub async fn insert_generic_inference_job_for_fal_queue<'e, 'c : 'e, E>(args: In maybe_avt_token: args.maybe_avt_token, creator_ip_address: args.creator_ip_address, creator_set_visibility: args.creator_set_visibility, + starting_job_status_override: None, mysql_executor: args.mysql_executor, phantom: args.phantom, }; diff --git a/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_mock_failure.rs b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_mock_failure.rs new file mode 100644 index 0000000000..5787342056 --- /dev/null +++ b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_mock_failure.rs @@ -0,0 +1,68 @@ +use sqlx::{Executor, MySql}; +use std::marker::PhantomData; + +use enums::common::job_status_plus::JobStatusPlus; +use enums::common::visibility::Visibility; +use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken; +use tokens::tokens::generic_inference_jobs::InferenceJobToken; +use tokens::tokens::prompts::PromptToken; +use tokens::tokens::users::UserToken; + +use crate::errors::database_query_error::DatabaseQueryError; +use crate::payloads::generic_inference_args::generic_inference_args::GenericInferenceArgs; +use crate::queries::generic_inference::fal::insert_generic_inference_job_for_fal_queue::FalCategory; +use crate::queries::generic_inference::fal::insert_generic_inference_job_for_fal_queue_with_apriori_job_token::{ + insert_generic_inference_job_for_fal_queue_with_apriori_job_token, + InsertGenericInferenceForFalWithAprioriJobTokenArgs, +}; + +/// Same as [`InsertGenericInferenceForFalArgs`] but without `maybe_external_third_party_id`, +/// since no external Fal call was made. The inserted job will have status +/// [`JobStatusPlus::CompleteFailure`] immediately, making it a synthetic failed job useful +/// for testing error-handling paths on the frontend without touching real inference services. +pub struct InsertGenericInferenceForFalMockFailureArgs<'e, 'c, E> + where E: 'e + Executor<'c, Database = MySql> +{ + pub uuid_idempotency_token: &'e str, + + pub fal_category: FalCategory, + + pub maybe_inference_args: Option, + + pub maybe_prompt_token: Option<&'e PromptToken>, + + pub maybe_creator_user_token: Option<&'e UserToken>, + pub maybe_avt_token: Option<&'e AnonymousVisitorTrackingToken>, + pub creator_ip_address: &'e str, + pub creator_set_visibility: Visibility, + + pub mysql_executor: E, + + pub phantom: PhantomData<&'c E>, +} + +pub async fn insert_generic_inference_job_for_fal_queue_mock_failure<'e, 'c: 'e, E>( + args: InsertGenericInferenceForFalMockFailureArgs<'e, 'c, E>, +) -> Result + where E: 'e + Executor<'c, Database = MySql> +{ + let job_token = InferenceJobToken::generate(); + + let inner_args = InsertGenericInferenceForFalWithAprioriJobTokenArgs { + uuid_idempotency_token: args.uuid_idempotency_token, + apriori_job_token: &job_token, + maybe_external_third_party_id: "", // No external job — Fal was never called + fal_category: args.fal_category, + maybe_inference_args: args.maybe_inference_args, + maybe_prompt_token: args.maybe_prompt_token, + maybe_creator_user_token: args.maybe_creator_user_token, + maybe_avt_token: args.maybe_avt_token, + creator_ip_address: args.creator_ip_address, + creator_set_visibility: args.creator_set_visibility, + starting_job_status_override: Some(JobStatusPlus::CompleteFailure), + mysql_executor: args.mysql_executor, + phantom: args.phantom, + }; + + insert_generic_inference_job_for_fal_queue_with_apriori_job_token(inner_args).await +} diff --git a/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_with_apriori_job_token.rs b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_with_apriori_job_token.rs index 925e8eafed..7d0ac46c3a 100644 --- a/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_with_apriori_job_token.rs +++ b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/insert_generic_inference_job_for_fal_queue_with_apriori_job_token.rs @@ -46,6 +46,10 @@ pub struct InsertGenericInferenceForFalWithAprioriJobTokenArgs<'e, 'c, E> pub creator_ip_address: &'e str, pub creator_set_visibility: Visibility, + /// Override the initial job status. Defaults to `Pending` when `None`. + /// Set to `Some(JobStatusPlus::CompleteFailure)` for mock/test failure jobs. + pub starting_job_status_override: Option, + pub mysql_executor: E, // TODO: Not sure if this works to tell the compiler we need the lifetime annotation. @@ -86,7 +90,7 @@ pub async fn insert_generic_inference_job_for_fal_queue_with_apriori_job_token<' let maybe_external_third_party = InferenceJobExternalThirdParty::Fal; - const STATUS : JobStatusPlus = JobStatusPlus::Pending; + let status = args.starting_job_status_override.unwrap_or(JobStatusPlus::Pending); let query = sqlx::query!( r#" @@ -152,7 +156,7 @@ SET args.creator_ip_address, args.creator_set_visibility.to_str(), - STATUS.to_str(), + status.to_str(), ); let query_result = query.execute(args.mysql_executor) diff --git a/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/mod.rs b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/mod.rs index e6127d82fc..0574637b23 100644 --- a/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/mod.rs +++ b/crates/schema/database/mysql_queries/src/queries/generic_inference/fal/mod.rs @@ -1,4 +1,5 @@ pub mod get_inference_job_by_fal_id; pub mod insert_generic_inference_job_for_fal_queue; +pub mod insert_generic_inference_job_for_fal_queue_mock_failure; pub mod insert_generic_inference_job_for_fal_queue_with_apriori_job_token; pub mod mark_fal_generic_inference_job_successfully_done; \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/job_failure_test.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/job_failure_test.rs new file mode 100644 index 0000000000..6bd76deae3 --- /dev/null +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/job_failure_test.rs @@ -0,0 +1,7 @@ +/// Returns `true` if the prompt contains the secret test phrase that triggers +/// a synthetic job failure. The job record is inserted with +/// `JobStatusPlus::CompleteFailure` immediately, without calling any external +/// inference service or performing billing. +pub fn is_job_failure_test(prompt: &str) -> bool { + prompt.to_ascii_lowercase().contains("artcraft_test_job_failure") +} diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/mod.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/mod.rs index ca31fd4c3e..095abd6ae2 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/mod.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/common/mod.rs @@ -1 +1,2 @@ +pub mod job_failure_test; pub mod payments_error_test; \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs index 3c72190ca2..633f579d37 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gemini_25_flash_edit_image_handler.rs @@ -278,6 +278,7 @@ pub async fn gemini_25_flash_edit_image_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs index d54a7e8651..fec899a7f2 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/gpt_image_1_edit_image_handler.rs @@ -300,6 +300,7 @@ pub async fn gpt_image_1_edit_image_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs index aaef0ca048..522c890eb4 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/edit/qwen_edit_image_handler.rs @@ -252,6 +252,7 @@ pub async fn qwen_edit_image_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_1_dev_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_1_dev_text_to_image_handler.rs index f76c33ae61..f9f836dd88 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_1_dev_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_1_dev_text_to_image_handler.rs @@ -2,6 +2,7 @@ use std::sync::Arc; use crate::billing::wallets::temporary_test_wallet_deduction::temporary_test_wallet_deduction; use crate::http_server::common_responses::common_web_error::CommonWebError; +use crate::http_server::endpoints::generate::common::job_failure_test::is_job_failure_test; use crate::http_server::endpoints::generate::common::payments_error_test::payments_error_test; use crate::http_server::validations::validate_idempotency_token_format::validate_idempotency_token_format; use crate::state::server_state::ServerState; @@ -20,6 +21,7 @@ use log::{error, info, warn}; use mysql_queries::queries::generic_inference::fal::insert_generic_inference_job_for_fal_queue::insert_generic_inference_job_for_fal_queue; use mysql_queries::queries::generic_inference::fal::insert_generic_inference_job_for_fal_queue::FalCategory; use mysql_queries::queries::generic_inference::fal::insert_generic_inference_job_for_fal_queue::InsertGenericInferenceForFalArgs; +use mysql_queries::queries::generic_inference::fal::insert_generic_inference_job_for_fal_queue_mock_failure::{insert_generic_inference_job_for_fal_queue_mock_failure, InsertGenericInferenceForFalMockFailureArgs}; use mysql_queries::queries::idepotency_tokens::insert_idempotency_token::insert_idempotency_token; use mysql_queries::queries::prompts::insert_prompt::{insert_prompt, InsertPromptArgs}; use sqlx::Acquire; @@ -90,6 +92,75 @@ pub async fn generate_flux_1_dev_text_to_image_handler( CommonWebError::BadInputWithSimpleMessage("repeated idempotency token".to_string()) })?; + // Secret test hook: insert a synthetic "complete_failure" job without calling Fal. + if is_job_failure_test(request.prompt.as_deref().unwrap_or("")) { + let ip_address = get_request_ip(&http_request); + + let mut transaction = mysql_connection + .begin() + .await + .map_err(|err| { + error!("Error starting MySQL transaction: {:?}", err); + CommonWebError::ServerError + })?; + + let prompt_result = insert_prompt(InsertPromptArgs { + maybe_apriori_prompt_token: None, + prompt_type: PromptType::ArtcraftApp, + maybe_creator_user_token: maybe_user_session.as_ref().map(|s| &s.user_token), + maybe_model_type: Some(ModelType::Flux1Dev), + maybe_generation_provider: Some(GenerationProvider::Artcraft), + maybe_positive_prompt: request.prompt.as_deref(), + maybe_negative_prompt: None, + maybe_other_args: None, + creator_ip_address: &ip_address, + mysql_executor: &mut *transaction, + phantom: Default::default(), + }).await; + + let prompt_token = match prompt_result { + Ok(token) => Some(token), + Err(err) => { + warn!("Error inserting prompt for mock failure job: {:?}", err); + None + } + }; + + let mock_result = insert_generic_inference_job_for_fal_queue_mock_failure(InsertGenericInferenceForFalMockFailureArgs { + uuid_idempotency_token: &request.uuid_idempotency_token, + fal_category: FalCategory::ImageGeneration, + maybe_inference_args: None, + maybe_prompt_token: prompt_token.as_ref(), + maybe_creator_user_token: maybe_user_session.as_ref().map(|s| &s.user_token), + maybe_avt_token: maybe_avt_token.as_ref(), + creator_ip_address: &ip_address, + creator_set_visibility: Visibility::Public, + mysql_executor: &mut *transaction, + phantom: Default::default(), + }).await; + + let job_token = match mock_result { + Ok(token) => token, + Err(err) => { + warn!("Error inserting mock failure job: {:?}", err); + return Err(CommonWebError::ServerError); + } + }; + + transaction + .commit() + .await + .map_err(|err| { + error!("Error committing mock failure transaction: {:?}", err); + CommonWebError::ServerError + })?; + + return Ok(Json(GenerateFlux1DevTextToImageResponse { + success: true, + inference_job_token: job_token, + })); + } + // // TODO: This is test code // let credits = match request.num_images { // Some(GenerateFlux1DevTextToImageNumImages::One) => 100, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_text_to_image_handler.rs index c048e600bc..1736996628 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_text_to_image_handler.rs @@ -187,6 +187,7 @@ pub async fn generate_flux_pro_11_text_to_image_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_ultra_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_ultra_text_to_image_handler.rs index 05858a8d93..16025836d2 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_ultra_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_flux_pro_11_ultra_text_to_image_handler.rs @@ -191,6 +191,7 @@ pub async fn generate_flux_pro_11_ultra_text_to_image_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_gpt_image_1_text_to_image_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_gpt_image_1_text_to_image_handler.rs index f06d735ee7..eef7708a83 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_gpt_image_1_text_to_image_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/generate_gpt_image_1_text_to_image_handler.rs @@ -234,6 +234,7 @@ pub async fn generate_gpt_image_1_text_to_image_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs index 7cca9d062c..6f43642beb 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4_multi_function_image_gen_handler.rs @@ -299,6 +299,7 @@ pub async fn bytedance_seedream_v4_multi_function_image_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs index cc684e6722..9b84149040 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/bytedance_seedream_v4p5_multi_function_image_gen_handler.rs @@ -297,6 +297,7 @@ pub async fn bytedance_seedream_v4p5_multi_function_image_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs index bc77a2e41a..3c55dc5f4b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/gpt_image_1p5_multi_function_image_gen_handler.rs @@ -387,6 +387,7 @@ pub async fn gpt_image_1p5_multi_function_image_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs index fa1c0b1a42..e1c3505ed8 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_multi_function_image_gen_handler.rs @@ -330,6 +330,7 @@ pub async fn nano_banana_multi_function_image_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs index 46104ac986..02da5ecc19 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/image/multi_function/nano_banana_pro_multi_function_image_gen_handler.rs @@ -345,6 +345,7 @@ pub async fn nano_banana_pro_multi_function_image_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_1_6_pro_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_1_6_pro_video_handler.rs index 46c894542f..d9cb8daadd 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_1_6_pro_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_1_6_pro_video_handler.rs @@ -248,6 +248,7 @@ pub async fn generate_kling_1_6_pro_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_master_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_master_video_handler.rs index 3a4d877991..08814aa9f8 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_master_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_master_video_handler.rs @@ -233,6 +233,7 @@ pub async fn generate_kling_2_1_master_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_pro_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_pro_video_handler.rs index ce805ff0a4..01bbcd0c56 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_pro_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_kling_2_1_pro_video_handler.rs @@ -248,6 +248,7 @@ pub async fn generate_kling_2_1_pro_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_lite_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_lite_image_to_video_handler.rs index 003e974640..370a4b5cb2 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_lite_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_lite_image_to_video_handler.rs @@ -263,6 +263,7 @@ pub async fn generate_seedance_1_0_lite_image_to_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_pro_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_pro_image_to_video_handler.rs index 828d91f578..96ba365f35 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_pro_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_seedance_1_0_pro_image_to_video_handler.rs @@ -240,6 +240,7 @@ pub async fn generate_seedance_1_0_pro_image_to_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_2_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_2_image_to_video_handler.rs index 1de56324c8..bab7521c4a 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_2_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_2_image_to_video_handler.rs @@ -246,6 +246,7 @@ pub async fn generate_veo_2_image_to_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_fast_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_fast_image_to_video_handler.rs index 475c9e0913..7f307ba343 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_fast_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_fast_image_to_video_handler.rs @@ -239,6 +239,7 @@ pub async fn generate_veo_3_fast_image_to_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_image_to_video_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_image_to_video_handler.rs index d3ee751abc..e0e464ae37 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_image_to_video_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/generate_veo_3_image_to_video_handler.rs @@ -247,6 +247,7 @@ pub async fn generate_veo_3_image_to_video_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs index 4ef09d68a7..f901bdebe9 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p5_turbo_pro_multi_function_video_gen_handler.rs @@ -317,6 +317,7 @@ pub async fn kling_2p5_turbo_pro_multi_function_video_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs index d54790710a..78f4f3ba1b 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/kling_2p6_pro_multi_function_video_gen_handler.rs @@ -316,6 +316,7 @@ pub async fn kling_2p6_pro_multi_function_video_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs index 4aa7ef3800..b5560fc27d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_multi_function_video_gen_handler.rs @@ -336,6 +336,7 @@ pub async fn sora_2_multi_function_video_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs index 7d2a3cdeaa..e5e64d9a11 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/sora_2_pro_multi_function_video_gen_handler.rs @@ -338,6 +338,7 @@ pub async fn sora_2_pro_multi_function_video_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs index 8b699249f6..19b0ccd682 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_fast_multi_function_video_gen_handler.rs @@ -401,6 +401,7 @@ pub async fn veo_3p1_fast_multi_function_video_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await; diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs index a92cfac008..95dc61444d 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/generate/video/multi_function/veo_3p1_multi_function_video_gen_handler.rs @@ -401,6 +401,7 @@ pub async fn veo_3p1_multi_function_video_gen_handler( creator_ip_address: &ip_address, creator_set_visibility: Visibility::Public, mysql_executor: &mut *transaction, + starting_job_status_override: None, phantom: Default::default(), }).await;