dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.37k stars 9.99k forks source link

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

Open daytonjallen opened 1 year ago

daytonjallen commented 1 year ago

Is there an existing issue for this?

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

Also the error is different if we pass parameters: image

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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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 (<anonymous>)
          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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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.<LogHelloWorld>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 (<anonymous>)
    at Object.beginInvokeJSFromDotNet (http://localhost/jsonexception/_framework/blazor.webassembly.js:1:3311)
   at Microsoft.JSInterop.JSRuntime.<InvokeAsync>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.<EnsureConfigured>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.<EnsureConfigured>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 (<anonymous>)
          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.<EnsureConfigured>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.<EnsureConfigured>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 (<anonymous>)
    at Object.beginInvokeJSFromDotNet (http://localhost/jsonexception6/_framework/blazor.webassembly.js:1:3311)
   at Microsoft.JSInterop.JSRuntime.<InvokeAsync>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

ghost commented 1 year ago

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

shiladitya-mukerji-22 commented 1 year ago

Hey @mkArtakMSFT, I would like to work on this issue.

mkArtakMSFT commented 11 months ago

@shiladitya-mukerji-22 I just found your message accidentally. If you want, you can wait for us to drop a summary comment, which will hopefully give you hints regarding how to proceed and what approach to take. If you are confident that you can handle it without it, feel free to send us a PR and we'll get somebody review it.

ghost commented 9 months ago

Thanks for contacting us.

We're moving this issue to the .NET 9 Planning milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s). If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.