temporalio / temporalio/features
[Feature Request] Configurable workflow failure exception types
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 32
- Forks
- 28
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 7
Description
Describe the solution you'd like
We need to let users choose what fails the workflow vs what just fails the task today. Go and Java already have some form of this. To do:
- Go - https://github.com/temporalio/sdk-go/issues/1387
- Worker task failure -
WorkflowPanicPolicyexists (panics are the only task failures today) - Workflow task failure - Need
workflow.RegisterOptions.WorkflowPanicPolicy(or do we?)
- Worker task failure -
- Java - https://github.com/temporalio/sdk-java/issues/1987
- Worker task failure - Need
WorkerOptions.Builder.setFailWorkflowExceptionTypes(...Throwable)(or do we?) - Workflow task failure -
WorkflowImplementationOptions.Builder.setFailWorkflowExceptionTypes(...Throwable)exists
- Worker task failure - Need
- Core - https://github.com/temporalio/sdk-core/issues/656
- Worker task failure - Need
WorkerConfig.workflow_failure_errors: HashSet<WorkflowTaskFailureType>(only value forWorkflowTaskFailureTypetoday isNondeterminism) - Workflow task failure - Need
WorkerConfig.workflow_failure_errors_by_workflow_type: HashMap<String, HashSet<WorkflowTaskFailureType>>
- Worker task failure - Need
- TS - https://github.com/temporalio/sdk-typescript/issues/1358
- Worker/workflow task failure - Need
WorkerOptions.workflowFailureErrorTypes: Record<string|'*', Array<Error>>- Note, if type set contains
DeterminismViolationErrorthen core side should be set
- Note, if type set contains
- Worker/workflow task failure - Need
- Python - https://github.com/temporalio/sdk-python/issues/446
- Worker task failure - Need
workflow_failure_exception_types: Set[Type[Exception]]onWorkerconstructor - Workflow task failure - Need
failure_exception_types: Set[Type[Exception]]on@workflow.defndecorator- Note, if type set contains
NondeterminismErrorthen core side should be set
- Note, if type set contains
- Worker task failure - Need
- .NET - https://github.com/temporalio/sdk-dotnet/issues/166
- Worker task failure - Need
IReadOnlyCollection<Type> WorkflowFailureExceptionTypesonTemporalWorkerOptions - Workflow task failure - Need
Type[] FailureExceptionTypesonWorkflowAttributeandIReadOnlyCollection<Type> FailureExceptionTypesonWorkflowDefinition- Note, if type set contains
InvalidWorkflowOperationExceptionthen core side should be set
- Note, if type set contains
- Worker task failure - Need
This can change at implementation time, this is just a guide.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked Go, Java, Core, TypeScript, Python, and .NET issues, then compare the listed worker and workflow configuration entry points such as WorkerOptions, WorkflowImplementationOptions, workflow.defn, and WorkflowAttribute. Done means the unchecked SDK-specific requirements and their Core coordination are resolved consistently across the checklist.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, java, python, typescript
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100