You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 038f371
Browse filesBrowse the repository at this point in the historyBrowse files
Add FailureDetails.is_caused_by() and fully-qualified error types
Mirrors .NET's TaskFailureDetails.IsCausedBy<T>() and Java's
FailureDetails.isCausedBy(Class). Adds FailureDetails.is_caused_by(),
which is base-type aware for exception types (via a subclass walk over
already-imported classes, with no arbitrary imports) and name-based for
strings.
BREAKING: FailureDetails.error_type (and the errorType wire value) now
uses the fully-qualified type name (e.g. builtins.ValueError,
durabletask.task.TaskFailedError) instead of the bare class name, to
match the .NET and Java SDKs. Bare names produced by older/foreign
workers are still matched for back-compat.
Fixes#162
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 95968239-5578-4d49-a049-31ab007b18d8
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,14 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
8
## Unreleased
9
9
10
+
ADDED
11
+
12
+
- Added `FailureDetails.is_caused_by()` to check whether a task failure was caused by a given exception type, mirroring .NET's `TaskFailureDetails.IsCausedBy<T>()` and Java's `FailureDetails.isCausedBy()`. Passing an exception type performs a base-type-aware match (a failure caused by a subclass matches its base type) against exception classes already imported in the process; passing a string matches by qualified or unqualified name.
13
+
14
+
CHANGED
15
+
16
+
-**Breaking:**`FailureDetails.error_type` — and the `errorType` value sent over the wire — is now the fully-qualified type name (`module.ClassName`, e.g. `builtins.ValueError`, `durabletask.task.TaskFailedError`) instead of the bare class name, matching the .NET and Java SDKs. Code that compared `error_type` against a bare name (for example `== "ValueError"`) must be updated to the qualified name or, preferably, switched to `FailureDetails.is_caused_by()`. Because this value is persisted and crosses the orchestration boundary, failures produced by older workers may still carry a bare name; `is_caused_by()` accepts both.
Copy file name to clipboardExpand all lines: durabletask-azuremanaged/CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,8 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
8
## Unreleased
9
9
10
+
-`FailureDetails.error_type` now carries the fully-qualified type name (e.g. `durabletask.task.TaskFailedError`) instead of the bare class name, and the new `FailureDetails.is_caused_by()` helper is available (both inherited from durabletask). See the core `durabletask` changelog for details, including the breaking-change notes.
0 commit comments