Page designer not loading properly in 4.2.21

Product: PowerShell Universal
Version: 4.2.21

Brand new here, setting up a server to test with.

For some reason, when trying to edit a page in the designer, it just comes up completely blank every time. Uninstalling and installing 4.2.20 fixed this.

Looking through the logs, this looks like the relevant section. Something I’ve setup wrong, or is there an issues with 4.2.21?


2024-05-07 10:46:54.692 -07:00 [INF] Executing endpoint 'UniversalAutomation.DashboardController.GetDesignerPage (Universal.Server)'
2024-05-07 10:46:54.694 -07:00 [INF] Route matched with {action = "GetDesignerPage", controller = "Dashboard"}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IActionResult GetDesignerPage(System.String, System.String) on controller UniversalAutomation.DashboardController (Universal.Server).
2024-05-07 10:46:54.701 -07:00 [INF] Executed action UniversalAutomation.DashboardController.GetDesignerPage (Universal.Server) in 7.1884ms
2024-05-07 10:46:54.701 -07:00 [INF] Executed endpoint 'UniversalAutomation.DashboardController.GetDesignerPage (Universal.Server)'
2024-05-07 10:46:54.703 -07:00 [ERR] An unhandled exception has occurred while executing the request.
System.Management.Automation.Runspaces.InvalidRunspaceStateException: Cannot perform operation because the runspace is not in the 'Opened' state. Current state of runspace is 'BeforeOpen'.
   at System.Management.Automation.PowerShell.CoreInvokeHelper[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
   at System.Management.Automation.PowerShell.CoreInvoke[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
   at System.Management.Automation.PowerShell.Invoke[T]()
   at PowerShellUniversal.AppComponentService.DeserializeComponents(Int64 dashboardId, String sessionId, String pageId, String script) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Services\Dashboard\AppComponentService.cs:line 82
   at PowerShellUniversal.AppSerializer.Deserialize(Int64 dashboardId, String sessionId, String pageId, DashboardPage page) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Services\Dashboard\AppSerializer.cs:line 159
   at UniversalAutomation.DashboardController.GetDesignerPage(String dashboardName, String pageName) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Controllers\DashboardController.cs:line 965
   at lambda_method2948(Closure, Object, Object[])
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   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()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at PowerShellUniversal.FeatureMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Middleware\FeatureMiddleware.cs:line 43
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at PowerShellUniversal.DisallowedModeMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Middleware\ModeMiddleware.cs:line 47
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at PowerShellUniversal.CspMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Middleware\CspMiddleware.cs:line 21
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at Universal.Server.Middleware.RoutingMiddleware.Invoke(HttpContext httpContext, IPolicyEvaluator policyEvaluator) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Middleware\RoutingMiddleware.cs:line 197
   at PowerShellUniversal.PSUMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Middleware\PowerShellMiddleware.cs:line 44
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Universal.Server.Middleware.SwaggerAuthenticationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\actions-runner\_work\universal\universal\src\Universal.Server\Middleware\SwaggerAuthMiddleware.cs:line 53
   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at AspNetCoreRateLimit.RateLimitMiddleware`1.Invoke(HttpContext context) in C:\actions-runner\_work\universal\universal\src\AspNetCoreRateLimit\Middleware\RateLimitMiddleware.cs:line 110
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|8_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
2024-05-07 10:46:54.715 -07:00 [INF] Request finished HTTP/1.1 GET http://home-pwsh.ad.emsley.ca:5000/api/v1/dashboard/TestApp2/page/Home/designer - - - 500 - text/plain 27.5209ms
2024-05-07 10:46:55.726 -07:00 [INF] Request starting HTTP/1.1 GET http://home-pwsh.ad.emsley.ca:5000/api/v1/dashboard/TestApp2/page/Home/designer - -
2024-05-07 10:46:55.730 -07:00 [INF] Executing endpoint 'UniversalAutomation.DashboardController.GetDesignerPage (Universal.Server)'
2024-05-07 10:46:55.730 -07:00 [INF] Route matched with {action = "GetDesignerPage", controller = "Dashboard"}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IActionResult GetDesignerPage(System.String, System.String) on controller UniversalAutomation.DashboardController (Universal.Server).
2024-05-07 10:46:55.733 -07:00 [INF] Executed action UniversalAutomation.DashboardController.GetDesignerPage (Universal.Server) in 3.4117ms
2024-05-07 10:46:55.733 -07:00 [INF] Executed endpoint 'UniversalAutomation.DashboardController.GetDesignerPage (Universal.Server)'
2024-05-07 10:46:55.734 -07:00 [ERR] An unhandled exception has occurred while executing the request.
System.Management.Automation.Runspaces.InvalidRunspaceStateException: Cannot perform operation because the runspace is not in the 'Opened' state. Current state of runspace is 'BeforeOpen'.

I have the same problem. Same version, new server. Saving from within the designer page will work…once. But you can’t get back to the designer with the previous components you had added.