diff --git a/server-rs/crates/platform-tripo/src/common/mapping.rs b/server-rs/crates/platform-tripo/src/common/mapping.rs index bfcb32449..9c05599ef 100644 --- a/server-rs/crates/platform-tripo/src/common/mapping.rs +++ b/server-rs/crates/platform-tripo/src/common/mapping.rs @@ -14,7 +14,7 @@ use crate::{ pub(crate) fn map_task(task: Task) -> Result { let task_id = task.task_id; let task_type = map_task_type(&task.task_type, &task_id)?; - let status = map_status(task.status)?; + let status = map_status(task.status, &task_id)?; let output = match status { Model3dTaskStatus::Completed => Some(map_output( &task_id, @@ -58,7 +58,7 @@ fn map_task_type(task_type: &str, task_id: &str) -> Result Result { +fn map_status(status: TaskStatus, task_id: &str) -> Result { match status { TaskStatus::Queued => Ok(Model3dTaskStatus::Queued), TaskStatus::Running => Ok(Model3dTaskStatus::Running), @@ -66,7 +66,9 @@ fn map_status(status: TaskStatus) -> Result { TaskStatus::Failed | TaskStatus::Banned => Ok(Model3dTaskStatus::Failed), TaskStatus::Cancelled => Ok(Model3dTaskStatus::Cancelled), TaskStatus::Expired => Ok(Model3dTaskStatus::Expired), - TaskStatus::Unknown => Err(TripoError::Sdk { + // 与其它映射失败一致带上 task id:provider 异常要能和具体任务对上。 + TaskStatus::Unknown => Err(TripoError::OutputSchema { + task_id: task_id.into(), message: "Tripo returned unknown task status".into(), }), }