diff --git a/crates/macros/src/workflow_definitions.rs b/crates/macros/src/workflow_definitions.rs index b37a47b08..bc17355b2 100644 --- a/crates/macros/src/workflow_definitions.rs +++ b/crates/macros/src/workflow_definitions.rs @@ -1012,7 +1012,7 @@ impl WorkflowMethodsDefinition { let result = #run_call; match result { Ok(value) => ::temporalio_sdk::workflows::serialize_result(value, &ctx.payload_converter()) - .map_err(|e| ::temporalio_sdk::WorkflowTermination::from(::anyhow::Error::new(e))), + .map_err(::temporalio_sdk::WorkflowTermination::from), Err(e) => Err(e), } }.boxed_local() diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index f979771bf..9f624842f 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -1281,6 +1281,15 @@ impl From for Workfl } } +impl From for WorkflowTermination { + fn from(err: workflows::WorkflowError) -> Self { + match err { + workflows::WorkflowError::PayloadConversion(e) => Self::from(e), + workflows::WorkflowError::Execution(e) => Self::from(e), + } + } +} + impl From for WorkflowTermination { fn from(value: ActivityExecutionError) -> Self { Self::Failed(value.into())