diff --git a/templates/workflow_template.py.j2 b/templates/workflow_template.py.j2 index dbd19dd..4f8dd1b 100644 --- a/templates/workflow_template.py.j2 +++ b/templates/workflow_template.py.j2 @@ -6,6 +6,7 @@ import json import datetime import re import jmespath +from temporalio.exceptions import ApplicationError # Configure logging logging.basicConfig(level=logging.INFO, @@ -111,7 +112,7 @@ class {{ workflow_class_name }}: block_error = { "code": type(e).__name__, "description": str(e), - "details": {} + "details": {"cause": str(getattr(e, "cause", "No additional details"))} } workflow_output["status"] = "failed" # Collect block output @@ -141,10 +142,12 @@ class {{ workflow_class_name }}: # Update workflow status to completed if not failed if workflow_output["status"] != "failed": workflow_output["status"] = "completed" + else: + raise ApplicationError("Activity error occurred", type="ActivityError", non_retryable=True) return workflow_output except Exception as e: logger.error(f"Workflow failed with error: {e}") workflow_output["status"] = "failed" - raise + raise temporalio.exceptions.ApplicationError("Workflow failed",workflow_output,str(e),type="WorkflowError",non_retryable=True) from e