There were a few edge cases that weren't being handled correctly when dealing with activity exceptions in .NET out-of-proc. The edge cases included:
Cases when customers override Exception.ToString() and change the exception message formatting
Cases when customers enable WorkerOptions.EnableUserCodeException
In the above cases, what we receive from the .NET Isolated worker changes from what we expect, resulting in exception information missing when customers try to handle exceptions in their orchestrator function code. The changes in this PR are meant to cover these corner cases and provide users with more accurate exception information.
Pull request checklist
[x] My changes do not require documentation changes
[ ] Otherwise: Documentation PR is ready to merge and referenced in pending_docs.md
[ ] My changes should not be added to the release notes for the next release
[x] Otherwise: I've added my notes to release_notes.md
[x] My changes do not need to be backported to a previous version
[ ] Otherwise: Backport tracked by issue/PR #issue_or_pr
[ ] I have added all required tests (Unit tests, E2E tests)
[ ] My changes do not require any extra work to be leveraged by OutOfProc SDKs
[x] My changes do not change the version of the WebJobs.Extensions.DurableTask package
[ ] Otherwise: major or minor version updates are reflected in /src/Worker.Extensions.DurableTask/AssemblyInfo.cs
[x] My changes do not add EventIds to our EventSource logs
[ ] Otherwise: Ensure the EventIds are within the supported range in our existing Windows infrastructure. You may validate this with a deployed app's telemetry. You may also extend the range by completing a PR such as this one.
[x] My changes should be added to v3.x branch.
[ ] Otherwise: This change only applies to Durable Functions v2.x and will not be merged to branch v3.x.
Resolves https://github.com/Azure/azure-functions-durable-extension/issues/2711
There were a few edge cases that weren't being handled correctly when dealing with activity exceptions in .NET out-of-proc. The edge cases included:
Exception.ToString()
and change the exception message formattingWorkerOptions.EnableUserCodeException
In the above cases, what we receive from the .NET Isolated worker changes from what we expect, resulting in exception information missing when customers try to handle exceptions in their orchestrator function code. The changes in this PR are meant to cover these corner cases and provide users with more accurate exception information.
Pull request checklist
pending_docs.md
release_notes.md
/src/Worker.Extensions.DurableTask/AssemblyInfo.cs