Replies: 1 comment 4 replies
-
Check the History table. If you filter by the PartitionId column for your orchestration's instance ID, you should see a record with EventType = The Durable Task Framework tries to serialize the exception into a JSON object at the time the activity function fails and then deserialize it again when the orchestrator replays that particular activity function call. If you want more control over the serialization and deserialization process for exceptions, we allow you to inject your own service to do exactly this. More information here: https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-serialization-and-persistence?tabs=csharp#customizing-serialization-with-dependency-injection BTW, if you need to purge the history, you can do so using our purge APIs rather than messing with Table Storage directly. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi team,
We recently noticed that some of the exceptions being thrown by the activity function failed to be deserialized at the durable function side with the below stacktrace:
Microsoft.Azure.WebJobs.Extensions.DurableTask.FunctionFailedException: The activity function 'TestFunction' failed: "Failed to deserialize exception from TaskActivity: {"$type":"Microsoft.Rest.Azure.CloudException, Microsoft.Rest.ClientRuntime.Azure","Request":{"$type":"Microsoft.Rest.HttpRequestMessageWrapper, Microsoft.Rest.ClientRuntime","Method":{"$type":"System.Net.Http.HttpMethod, System.Net.Http","Method":"GET"}
<--rest of the stacktrace are emitted for brevity -->
I understand the problem is related to #1453 but we are more concerned about how the exception is being stored and where it's stored? The Microsoft.Rest.Azure.CloudException contains all request headers and we simply cannot have it stored in Azure table and will need to do a cleanup after the code fix. I can only find the corresponding durable function record under the task hub Instance table but not the actual serialized exception record for the activity. Could someone elaborate a little bit on the serialization behavior for the durable task framework? Thanks!
Beta Was this translation helpful? Give feedback.
All reactions