diff --git a/crates/api_clients/artcraft/artcraft_router/src/errors/artcraft_router_error.rs b/crates/api_clients/artcraft/artcraft_router/src/errors/artcraft_router_error.rs index 4aec4b268c..39821e9dce 100644 --- a/crates/api_clients/artcraft/artcraft_router/src/errors/artcraft_router_error.rs +++ b/crates/api_clients/artcraft/artcraft_router/src/errors/artcraft_router_error.rs @@ -76,3 +76,12 @@ impl From for ArtcraftRouterError { } } } + +impl From for ArtcraftRouterError { + fn from(error: FalErrorPlus) -> Self { + match &error { + FalErrorPlus::FalBillingError(e) => ArtcraftRouterError::ProviderBillingError(ProviderError::Fal(error)), + _ => ArtcraftRouterError::Provider(ProviderError::Fal(error)), + } + } +} diff --git a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_dev/request.rs b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_dev/request.rs index a421aacd02..2f24899e60 100644 --- a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_dev/request.rs +++ b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_dev/request.rs @@ -57,8 +57,7 @@ async fn send_fal_request( if let Some(webhook_url) = &client.webhook_url { let response = request .send_webhook_request(&client.api_key, webhook_url) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: response.request_id, gateway_request_id: response.gateway_request_id, @@ -66,8 +65,7 @@ async fn send_fal_request( } else { let response = request .send_queue_request(&client.api_key) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: Some(response.request_id), gateway_request_id: None, diff --git a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_schnell/request.rs b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_schnell/request.rs index f1891f9d1b..de60d180f5 100644 --- a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_schnell/request.rs +++ b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/flux_1_schnell/request.rs @@ -57,8 +57,7 @@ async fn send_fal_request( if let Some(webhook_url) = &client.webhook_url { let response = request .send_webhook_request(&client.api_key, webhook_url) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: response.request_id, gateway_request_id: response.gateway_request_id, @@ -66,8 +65,7 @@ async fn send_fal_request( } else { let response = request .send_queue_request(&client.api_key) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: Some(response.request_id), gateway_request_id: None, diff --git a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_2/request.rs b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_2/request.rs index 92bd5d916f..abb54ca000 100644 --- a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_2/request.rs +++ b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_2/request.rs @@ -57,8 +57,7 @@ async fn send_fal_request( if let Some(webhook_url) = &client.webhook_url { let response = request .send_webhook_request(&client.api_key, webhook_url) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: response.request_id, gateway_request_id: response.gateway_request_id, @@ -66,8 +65,7 @@ async fn send_fal_request( } else { let response = request .send_queue_request(&client.api_key) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: Some(response.request_id), gateway_request_id: None, diff --git a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_pro/request.rs b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_pro/request.rs index 5b7f785da0..12953c9b33 100644 --- a/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_pro/request.rs +++ b/crates/api_clients/artcraft/artcraft_router/src/generate/generate_image_v2/providers/fal/nano_banana_pro/request.rs @@ -58,8 +58,7 @@ async fn send_fal_request( if let Some(webhook_url) = &client.webhook_url { let response = request .send_webhook_request(&client.api_key, webhook_url) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: response.request_id, gateway_request_id: response.gateway_request_id, @@ -67,8 +66,7 @@ async fn send_fal_request( } else { let response = request .send_queue_request(&client.api_key) - .await - .map_err(|e| ArtcraftRouterError::Provider(ProviderError::Fal(e)))?; + .await?; Ok(FalResponseIds { request_id: Some(response.request_id), gateway_request_id: None, diff --git a/crates/desktop/artcraft/src/core/commands/generate/generate_image/providers/router/handle_api_providers.rs b/crates/desktop/artcraft/src/core/commands/generate/generate_image/providers/router/handle_api_providers.rs index aef08012c5..bf78753d52 100644 --- a/crates/desktop/artcraft/src/core/commands/generate/generate_image/providers/router/handle_api_providers.rs +++ b/crates/desktop/artcraft/src/core/commands/generate/generate_image/providers/router/handle_api_providers.rs @@ -102,7 +102,7 @@ async fn handle_fal( }, Err(err) => { warn!("Fal image generation failed: {:?}", err); - Err(GenerateError::ArtcraftRouterNotYetSupportedProvider("error message todo")) + Err(err.into()) } } }