Use of TypeNameHandling.All causes JsonReaderException
- Dominant language
- C#
- Stars
- 1.7k
- Forks
- 335
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 6
Description
### 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.<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
- **Durable task package version (e.g. v1.8.3)**: 2.13.0
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at src/DurableTask.Core/TaskActivity.cs line 107, where the activity input is processed, and compare it with the durable-functions fix linked in the issue. Review Common/Utils.cs line 210 and verify that TypeNameHandling.All no longer causes the reported JsonReaderException or JArray parsing failure. Add regression coverage for the serialization settings if the existing test structure supports it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100