dotnet / dotnet/aspnetcore

Calling Asynchronous .NET JS Interop Method Synchronously from JS Produces Misleading Error Message

Open
#46,811 7 comments 1 reaction 0 assignees View on GitHub
area-blazor bug copilot-candidate feature-blazor-jsinterop feature-blazor-wasm good first issue help wanted Pillar: Dev Experience Priority:2
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 6h
Merged PRs (30d)
290

Description

### Is there an existing issue for this?

- [X] I have searched the existing issues

### Describe the bug

Calling an asynchronous .NET JS Interop method synchronously produces an unhelpful/misleading error message.

These error messages (shown in steps to reproduce section) makes debugging the problem not very clear and seem mostly related to JSON Serialization - whereas that might not be the case.

### Expected Behavior

Error message should indicate that this is an (unsupported workflow?) and warn against invoking async methods synchronously from JS or something that makes it easier to identify what the issue is.

### Steps To Reproduce

Repo reproducing problem here: https://github.com/daytonjallen/JsonExceptionRepro

1. Start new blazor wasm project
2. Create async JSInvokable method from C#
3. Call the above method from JS synchronously (DotNetObjectReference.invokeMethod)

Functions executes "successfully" and produces an exception in the console:
![image](https://user-images.githubusercontent.com/19915513/220713077-de51d6a1-1959-4c3b-8b3d-969375cede19.png)

Also the error is different if we pass parameters:
![image](https://user-images.githubusercontent.com/19915513/220713507-ff97dc99-d835-4876-a7ef-a7514a50f19f.png)

### Exceptions (if any)

### Without Params:

```
crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action Path: $.MoveNextAction.
---> System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action
at System.Text.Json.Serialization.Converters.UnsupportedTypeConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Write(Utf8JsonWriter , Action , JsonSerializerOptions )
at System.Text.Json.Serialization.JsonConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , Action& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetMemberAndWriteJson(Object , WriteStack& , Utf8JsonWriter )
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].OnTryWrite(Utf8JsonWriter , AsyncStateMachineBox`1 , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
Exception_EndOfInnerExceptionStack
at System.Text.Json.ThrowHelper.ThrowNotSupportedException(WriteStack& , NotSupportedException )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCoreAsObject(Utf8JsonWriter , Object , JsonSerializerOptions , WriteStack& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
Error: System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action Path: $.MoveNextAction.
---> System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action
at System.Text.Json.Serialization.Converters.UnsupportedTypeConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Write(Utf8JsonWriter , Action , JsonSerializerOptions )
at System.Text.Json.Serialization.JsonConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , Action& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetMemberAndWriteJson(Object , WriteStack& , Utf8JsonWriter )
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].OnTryWrite(Utf8JsonWriter , AsyncStateMachineBox`1 , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
Exception_EndOfInnerExceptionStack
at System.Text.Json.ThrowHelper.ThrowNotSupportedException(WriteStack& , NotSupportedException )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCoreAsObject(Utf8JsonWriter , Object , JsonSerializerOptions , WriteStack& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
at qi (http://localhost/jsonexception/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80613)
at Ji (http://localhost/jsonexception/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80497)
at _Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet (https://dotnet.generated.invalid/_Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet:30:5)
at Object.invokeDotNetFromJS (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:45224)
at g (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:1621)
at e.invokeMethod (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:2670)
at window.logHelloWorld (http://localhost/jsonexception:31:41)
at http://localhost/jsonexception/_framework/blazor.webassembly.js:1:3337
at new Promise ()
at Object.beginInvokeJSFromDotNet (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:3311)
Microsoft.JSInterop.JSException: System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action Path: $.MoveNextAction.
---> System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action
at System.Text.Json.Serialization.Converters.UnsupportedTypeConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Write(Utf8JsonWriter , Action , JsonSerializerOptions )
at System.Text.Json.Serialization.JsonConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , Action& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetMemberAndWriteJson(Object , WriteStack& , Utf8JsonWriter )
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].OnTryWrite(Utf8JsonWriter , AsyncStateMachineBox`1 , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
Exception_EndOfInnerExceptionStack
at System.Text.Json.ThrowHelper.ThrowNotSupportedException(WriteStack& , NotSupportedException )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCoreAsObject(Utf8JsonWriter , Object , JsonSerializerOptions , WriteStack& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
Error: System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action Path: $.MoveNextAction.
---> System.NotSupportedException: SerializeTypeInstanceNotSupported, System.Action
at System.Text.Json.Serialization.Converters.UnsupportedTypeConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Write(Utf8JsonWriter , Action , JsonSerializerOptions )
at System.Text.Json.Serialization.JsonConverter`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , Action& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.Metadata.JsonPropertyInfo`1[[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetMemberAndWriteJson(Object , WriteStack& , Utf8JsonWriter )
at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].OnTryWrite(Utf8JsonWriter , AsyncStateMachineBox`1 , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryWrite(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
Exception_EndOfInnerExceptionStack
at System.Text.Json.ThrowHelper.ThrowNotSupportedException(WriteStack& , NotSupportedException )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCore(Utf8JsonWriter , AsyncStateMachineBox`1& , JsonSerializerOptions , WriteStack& )
at System.Text.Json.Serialization.JsonConverter`1[[System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[JsonExceptionRepro.Pages.Index.d__5, JsonExceptionRepro, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].WriteCoreAsObject(Utf8JsonWriter , Object , JsonSerializerOptions , WriteStack& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
at qi (http://localhost/jsonexception/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80613)
at Ji (http://localhost/jsonexception/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80497)
at _Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet (https://dotnet.generated.invalid/_Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet:30:5)
at Object.invokeDotNetFromJS (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:45224)
at g (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:1621)
at e.invokeMethod (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:2670)
at window.logHelloWorld (http://localhost/jsonexception:31:41)
at http://localhost/jsonexception/_framework/blazor.webassembly.js:1:3337
at new Promise ()
at Object.beginInvokeJSFromDotNet (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:3311)
at Microsoft.JSInterop.JSRuntime.d__16`1[[Microsoft.JSInterop.Infrastructure.IJSVoidResult, Microsoft.JSInterop, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].MoveNext()
at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime , String , Object[] )
at JsonExceptionRepro.Pages.Index.CallJsHello()
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task , ComponentState )
```

### With Params:

```
crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: System.NotSupportedException: ConstructorContainsNullParameterNames, System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]
at System.Text.Json.ThrowHelper.ThrowNotSupportedException_ConstructorContainsNullParameterNames(Type )
at System.Text.Json.Serialization.Metadata.ReflectionJsonTypeInfo`1[[System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetParameterInfoValues()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.Configure()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.g__ConfigureLocked|143_0()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.EnsureConfigured()
at System.Text.Json.JsonSerializerOptions.GetTypeInfoInternal(Type , Boolean , Boolean )
at System.Text.Json.JsonSerializer.ResolvePolymorphicTypeInfo[Object](Object& , JsonTypeInfo , Boolean& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
Error: System.NotSupportedException: ConstructorContainsNullParameterNames, System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]
at System.Text.Json.ThrowHelper.ThrowNotSupportedException_ConstructorContainsNullParameterNames(Type )
at System.Text.Json.Serialization.Metadata.ReflectionJsonTypeInfo`1[[System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetParameterInfoValues()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.Configure()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.g__ConfigureLocked|143_0()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.EnsureConfigured()
at System.Text.Json.JsonSerializerOptions.GetTypeInfoInternal(Type , Boolean , Boolean )
at System.Text.Json.JsonSerializer.ResolvePolymorphicTypeInfo[Object](Object& , JsonTypeInfo , Boolean& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
at qi (http://localhost/jsonexception6/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80613)
at Ji (http://localhost/jsonexception6/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80497)
at _Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet (https://dotnet.generated.invalid/_Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet:30:5)
at Object.invokeDotNetFromJS (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:45224)
at g (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:1621)
at A.invokeMethod (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:3812)
at window.logHelloWorld (http://localhost/jsonexception6:34:16)
at http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:3337
at new Promise ()
at Object.beginInvokeJSFromDotNet (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:3311)
Microsoft.JSInterop.JSException: System.NotSupportedException: ConstructorContainsNullParameterNames, System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]
at System.Text.Json.ThrowHelper.ThrowNotSupportedException_ConstructorContainsNullParameterNames(Type )
at System.Text.Json.Serialization.Metadata.ReflectionJsonTypeInfo`1[[System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetParameterInfoValues()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.Configure()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.g__ConfigureLocked|143_0()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.EnsureConfigured()
at System.Text.Json.JsonSerializerOptions.GetTypeInfoInternal(Type , Boolean , Boolean )
at System.Text.Json.JsonSerializer.ResolvePolymorphicTypeInfo[Object](Object& , JsonTypeInfo , Boolean& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
Error: System.NotSupportedException: ConstructorContainsNullParameterNames, System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]
at System.Text.Json.ThrowHelper.ThrowNotSupportedException_ConstructorContainsNullParameterNames(Type )
at System.Text.Json.Serialization.Metadata.ReflectionJsonTypeInfo`1[[System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetParameterInfoValues()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.Configure()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.g__ConfigureLocked|143_0()
at System.Text.Json.Serialization.Metadata.JsonTypeInfo.EnsureConfigured()
at System.Text.Json.JsonSerializerOptions.GetTypeInfoInternal(Type , Boolean , Boolean )
at System.Text.Json.JsonSerializer.ResolvePolymorphicTypeInfo[Object](Object& , JsonTypeInfo , Boolean& )
at System.Text.Json.JsonSerializer.WriteCore[Object](Utf8JsonWriter , Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.WriteString[Object](Object& , JsonTypeInfo`1 )
at System.Text.Json.JsonSerializer.Serialize[Object](Object , JsonSerializerOptions )
at Microsoft.JSInterop.Infrastructure.DotNetDispatcher.Invoke(JSRuntime , DotNetInvocationInfo& , String )
at Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime.InvokeDotNet(String assemblyName, String methodIdentifier, String dotNetObjectId, String argsJson)
at qi (http://localhost/jsonexception6/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80613)
at Ji (http://localhost/jsonexception6/_framework/dotnet.7.0.3.4p3w76z2b4.js:5:80497)
at _Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet (https://dotnet.generated.invalid/_Microsoft_AspNetCore_Components_WebAssembly__Microsoft_AspNetCore_Components_WebAssembly_Services_DefaultWebAssemblyJSRuntime_InvokeDotNet:30:5)
at Object.invokeDotNetFromJS (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:45224)
at g (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:1621)
at A.invokeMethod (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:3812)
at window.logHelloWorld (http://localhost/jsonexception6:34:16)
at http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:3337
at new Promise ()
at Object.beginInvokeJSFromDotNet (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:3311)
at Microsoft.JSInterop.JSRuntime.d__16`1[[Microsoft.JSInterop.Infrastructure.IJSVoidResult, Microsoft.JSInterop, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]].MoveNext()
at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime , String , Object[] )
at Test.Pages.Index.CallJsHello()
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task , ComponentState )
```

### .NET Version

7.0.200

### Anything else?

Visual Studio Version: 17.5.0

![image](https://user-images.githubusercontent.com/19915513/220715203-cdc9fdef-6f7c-404f-ae81-429ba2774ab7.png)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.