Add Security fails silently when there is no database

If I try to add ASP.NET Core Identity using the Wizard without having first created a database, the process fails with no indication as to why. This is not unexpected behaviour because a database is required. Is there some way to inform the user during the Wizard process?

The output from the dubugger is:

Starting Radzen.Server on port 4000
Connected to Radzen.Server
Waiting for any pending restore operations...
Restore complete.
Solution is up to date.
Opening project X:\Radzen\Strat360\Strat360.sln
Finished building X:\Radzen\Strat360\Strat360.ServiceDefaults\Strat360.ServiceDefaults.csproj
Finished building X:\Radzen\Strat360\Strat360.App\Strat360.App.csproj
Finished building X:\Radzen\Strat360\Strat360.AppHost\Strat360.AppHost.csproj
Finished building X:\Radzen\Strat360\Strat360.AppHost\Strat360.AppHost.csproj
Finished building X:\Radzen\Strat360\Strat360.AppHost\Strat360.AppHost.csproj
Finished building X:\Radzen\Strat360\Strat360.AppHost\Strat360.AppHost.csproj
System.ApplicationException: System.ArgumentException: Missing value for required parameter Database.
   at Radzen.Server.TemplateConfig.ApplyDefaults(IDictionary`2 input) in D:\a\radzen-next\radzen-next\Radzen.Server\TemplateEngine.cs:line 1519
   at Radzen.Server.TemplateEngine.RunAsync(String source, String dest, Boolean overwrite, IDictionary`2 parameters, Project serverProject, Project clientProject, ProjectServer server, ProjectServer client) in D:\a\radzen-next\radzen-next\Radzen.Server\TemplateEngine.cs:line 1853
   at Radzen.Server.LoggerExtensions.MeasureAsync[T](ILogger logger, String name, Func`1 action) in D:\a\radzen-next\radzen-next\Radzen.Server\Logger.cs:line 99
   at Radzen.Server.ProgramController.Generate(GenerateRequest request) in D:\a\radzen-next\radzen-next\Radzen.Server\ProgramController.cs:line 782
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
   at Radzen.VisualStudio.HttpResponseMessageExtensions.<EnsureSuccessfulResponseAsync>d__1.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\HttpResponseMessageExtensions.cs:line 30
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.Server.<PostAsJsonAsync>d__56`1.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\Server.cs:line 635
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.Server.<GenerateCodeAsync>d__46.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\Server.cs:line 551
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.SecurityDialog.<GenerateAsync>d__5.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\SecurityDialog.xaml.cs:line 78
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.WizardDialogBase`2.<RunAsync>d__5.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\WizardDialogBase.cs:line 93
System.ApplicationException: System.ArgumentException: Missing value for required parameter Database.
   at Radzen.Server.TemplateConfig.ApplyDefaults(IDictionary`2 input) in D:\a\radzen-next\radzen-next\Radzen.Server\TemplateEngine.cs:line 1519
   at Radzen.Server.TemplateEngine.RunAsync(String source, String dest, Boolean overwrite, IDictionary`2 parameters, Project serverProject, Project clientProject, ProjectServer server, ProjectServer client) in D:\a\radzen-next\radzen-next\Radzen.Server\TemplateEngine.cs:line 1853
   at Radzen.Server.LoggerExtensions.MeasureAsync[T](ILogger logger, String name, Func`1 action) in D:\a\radzen-next\radzen-next\Radzen.Server\Logger.cs:line 99
   at Radzen.Server.ProgramController.Generate(GenerateRequest request) in D:\a\radzen-next\radzen-next\Radzen.Server\ProgramController.cs:line 782
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
   at Radzen.VisualStudio.HttpResponseMessageExtensions.<EnsureSuccessfulResponseAsync>d__1.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\HttpResponseMessageExtensions.cs:line 30
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.Server.<PostAsJsonAsync>d__56`1.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\Server.cs:line 635
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.Server.<GenerateCodeAsync>d__46.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\Server.cs:line 551
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.SecurityDialog.<GenerateAsync>d__5.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\SecurityDialog.xaml.cs:line 78
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Radzen.VisualStudio.WizardDialogBase`2.<RunAsync>d__5.MoveNext() in D:\a\radzen-next\radzen-next\Radzen.VisualStudio.Xaml\WizardDialogBase.cs:line 93

Hi @dave-vader,

Thank you for reporting this issue. We will address it with the next release.