Azure / durabletask

Durable Task Framework allows users to write long running persistent workflows in C# using the async/await capabilities.
Apache License 2.0
1.51k stars 290 forks source link

Use of TypeNameHandling.All causes JsonReaderException #1007

Open chrissmiller opened 10 months ago

chrissmiller commented 10 months ago

Description

When using TypeNameHandling.All on our serialization settings for dtfx, we receive the following exception:

Handler: Exception: Orchestration execution failed due to unhandled exception. : Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: U. Path '', line 0, position 0.

[TaskFailedException]: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.
[TaskFailedExceptionDeserializationException]: Failed to deserialize exception from TaskActivity: Unhandled exception while executing task: Newtonsoft.Json.JsonReaderException: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.
   at Newtonsoft.Json.Linq.JArray.Load(JsonReader reader, JsonLoadSettings settings)
   at DurableTask.Core.Common.Utils.ConvertToJArray(String input) in /_/src/DurableTask.Core/Common/Utils.cs:line 210
   at DurableTask.Core.AsyncTaskActivity`2.RunAsync(TaskContext context, String input) in /_/src/DurableTask.Core/TaskActivity.cs:line 107
   at DurableTask.Core.TaskActivityDispatcher.<>c__DisplayClass14_1.<<OnProcessWorkItemAsync>b__2>d.MoveNext() in /_/src/DurableTask.Core/TaskActivityDispatcher.cs:line 189

It looks like this was previously resolved for the Azure Functions durable extensions package https://github.com/Azure/azure-functions-durable-extension/pull/1392 which looks very similar to the TaskActivity code that's throwing here: https://github.com/Azure/durabletask/blob/6f902190fcf7f14d42b07e940f516e47525dbc18/src/DurableTask.Core/TaskActivity.cs#L107.

Expected behavior

TypeNameHandling.All works and serializes properly.

Actual behavior

The framework throws the exception above.

App Details