diff --git a/server-rs/crates/platform-tripo/examples/tripo_generation_smoke.rs b/server-rs/crates/platform-tripo/examples/tripo_generation_smoke.rs index c58fd9f28..abc010eac 100644 --- a/server-rs/crates/platform-tripo/examples/tripo_generation_smoke.rs +++ b/server-rs/crates/platform-tripo/examples/tripo_generation_smoke.rs @@ -16,7 +16,7 @@ use std::{env, fs, time::Duration}; use platform_tripo::TripoProviderClient; use shared_contracts::model3d::{ - common::{Model3dModelVersion, Model3dTextureQuality}, + common::{Model3dModelVersion, Model3dTaskStatus, Model3dTextureQuality}, image_to_model::Model3dImageToModelRequest, multiview_to_model::{Model3dMultiviewInputs, Model3dMultiviewToModelRequest}, text_to_model::Model3dTextToModelRequest, @@ -140,6 +140,9 @@ async fn main() -> Result<(), Box> { &handle.task_id, WaitOptions { timeout: Some(Duration::from_secs(30 * 60)), + // Non-success terminal states are reported below by status + // so the remaining endpoints are still exercised. + throw_on_failure: false, ..WaitOptions::default() }, ) @@ -151,6 +154,14 @@ async fn main() -> Result<(), Box> { snapshot.status, snapshot.progress, snapshot.output ); + if snapshot.status != Model3dTaskStatus::Completed { + eprintln!( + "{name} skipped download: status={:?} failure={:?}", + snapshot.status, snapshot.failure + ); + continue; + } + let downloaded = client.download_model(&snapshot).await?; let filename = downloaded.filename(name); fs::write(&filename, &downloaded.data)?;