Include Exception Properties at FailureDetails#263
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds support for exception properties and inner failure details to the FailureDetails class, allowing richer error information to be captured and propagated through the Durable Task framework. The PR also includes a protobuf file sync from the upstream repository, which introduces many additional protocol buffer changes beyond the core feature.
Changes:
- Added
propertiesfield toTaskFailureDetailsprotobuf message to store exception metadata - Added
innerFailurefield support to capture exception cause chains - Implemented bidirectional conversion between protobuf
Valuetypes and Java objects - Added comprehensive unit tests covering properties, inner failures, and round-trip serialization
- Updated
DurableTaskGrpcWorkerto use the newFailureDetailsconstructor for consistent exception handling - Synced protobuf definitions from upstream repository (commit hash 1caadbd7ecfdf5f2309acbeac28a3e36d16aa156)
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/durabletask-protobuf/protos/orchestrator_service.proto | Added properties field to TaskFailureDetails; synced many other protobuf changes from upstream |
| internal/durabletask-protobuf/PROTO_SOURCE_COMMIT_HASH | Updated to track new protobuf source commit |
| client/src/main/java/com/microsoft/durabletask/FailureDetails.java | Added properties and innerFailure fields with conversion methods; added toString() override |
| client/src/test/java/com/microsoft/durabletask/FailureDetailsTest.java | Comprehensive new test file covering all aspects of the new functionality |
| client/src/main/java/com/microsoft/durabletask/DurableTaskGrpcWorker.java | Refactored to use FailureDetails constructor instead of building proto directly |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -1 +1 @@ | |||
| fbe5bb20835678099fc51a44993ed9b045dee5a6 No newline at end of file | |||
| 1caadbd7ecfdf5f2309acbeac28a3e36d16aa156 No newline at end of file | |||
There was a problem hiding this comment.
The PR description contains placeholder text "resolves #issue_for_this_pr" instead of an actual issue number. The checklist also indicates that changes should be added to CHANGELOG.md, but no changes to CHANGELOG.md are included in this PR. Please update the PR description with the actual issue number and add an entry to the "Unreleased" section of CHANGELOG.md documenting this feature addition.
Adds support for inner failure details and custom exception properties in the Java SDK, matching the .NET SDK implementation (durabletask-dotnet#474, azure-functions-durable-extension#3215).