UI Disconnect when selecting folder

Product: PowerShell Universal
Version: 5.6.13

I was working on reorganizing some scripts and somehow ended up with a folder that is a black hole.

All of my folders work as expected except one. When I click the particular folder, I get the loading icon forever. Theres about a dozen scripts in the folder and I can see them in the repository folder on the server itself.

Refreshing the page results in the loading icon forever and the disconnect again. Reloading to home and navigating to any other folder works as expected.

Loading icon

The UI throws these errors into the browser console

Uncaught SyntaxError: Identifier ‘evalableKeys’ has already been declared (at ant-design-charts-blazor.js:1:1)
blazor.server.js?v=5.6.13:1 [2026-01-16T22:56:54.722Z] Information: WebSocket connected to wss://INTERNAL_URL/_blazor?id=_eFy4AC3UXjO-QeWe8D9DA.
blazor.server.js?v=5.6.13:1 [2026-01-16T22:57:47.498Z] Error: System.InvalidOperationException: More than one sibling of component ‘AntDesign.Internal.TableRowWrapper`1[PowerShellUniversal.Script]’ has the same key value, ‘-1591274928’. Key values must be unique.
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.ThrowExceptionForDuplicateKey(Object key, RenderTreeFrame& frame)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.BuildKeyToInfoLookup(DiffContext diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForFramesWithSameSequence(DiffContext& diffContext, Int32 oldFrameIndex, Int32 newFrameIndex)
at /admin/automation/Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl)
at /admin/automation/Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue(scripts?folder=Office%20365)
log @ blazor.server.js?v=5.6.13:1
blazor.server.js?v=5.6.13:1 [2026-01-16T22:57:47.498Z] Information: Connection disconnected.
34blazor.server.js?v=5.6.13:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the ‘Connected’ State.
at on.send (blazor.server.js?v=5.6.13:1:81942)
at Jt._sendMessage (blazor.server.js?v=5.6.13:1:59570)
at Jt._sendWithProtocol (blazor.server.js?v=5.6.13:1:59660)
at Jt.send (blazor.server.js?v=5.6.13:1:59768)
at yo.endInvokeJSFromDotNet (blazor.server.js?v=5.6.13:1:136891)
at blazor.server.js?v=5.6.13:1:2979
2blazor.server.js?v=5.6.13:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the ‘Connected’ State.
at on.send (blazor.server.js?v=5.6.13:1:81942)
at Jt._sendMessage (blazor.server.js?v=5.6.13:1:59570)
at Jt._sendWithProtocol (blazor.server.js?v=5.6.13:1:59660)
at Jt.send (blazor.server.js?v=5.6.13:1:59768)
at yo.beginInvokeDotNetFromJS (blazor.server.js?v=5.6.13:1:136744)
at w.invokeDotNetMethodAsync (blazor.server.js?v=5.6.13:1:3968)
at E.invokeMethodAsync (blazor.server.js?v=5.6.13:1:5476)
at eventHelper.ts:34:40
2blazor.server.js?v=5.6.13:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the ‘Connected’ State.
at on.send (blazor.server.js?v=5.6.13:1:81942)
at Jt._sendMessage (blazor.server.js?v=5.6.13:1:59570)
at Jt._sendWithProtocol (blazor.server.js?v=5.6.13:1:59660)
at Jt.send (blazor.server.js?v=5.6.13:1:59768)
at yo.beginInvokeDotNetFromJS (blazor.server.js?v=5.6.13:1:136744)
at w.invokeDotNetMethodAsync (blazor.server.js?v=5.6.13:1:3968)
at E.invokeMethodAsync (blazor.server.js?v=5.6.13:1:5476)
at r.observerCallBack (resizeObserver.ts:99:15)
at ResizeObserver.e (resizeObserver.ts:23:75)
[NEW] Explain Console errors by using Copilot in Edge: click

     to explain an error. 
    Learn more
    Don't show again

blazor.server.js?v=5.6.13:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the ‘Connected’ State.
at on.send (blazor.server.js?v=5.6.13:1:81942)
at Jt._sendMessage (blazor.server.js?v=5.6.13:1:59570)
at Jt._sendWithProtocol (blazor.server.js?v=5.6.13:1:59660)
at Jt.send (blazor.server.js?v=5.6.13:1:59768)
at yo.beginInvokeDotNetFromJS (blazor.server.js?v=5.6.13:1:136744)
at w.invokeDotNetMethodAsync (blazor.server.js?v=5.6.13:1:3968)
at E.invokeMethodAsync (blazor.server.js?v=5.6.13:1:5476)
at eventHelper.ts:34:40
send @ blazor.server.js?v=5.6.13:1
_sendMessage @ blazor.server.js?v=5.6.13:1
_sendWithProtocol @ blazor.server.js?v=5.6.13:1
send @ blazor.server.js?v=5.6.13:1
beginInvokeDotNetFromJS @ blazor.server.js?v=5.6.13:1
invokeDotNetMethodAsync @ blazor.server.js?v=5.6.13:1
invokeMethodAsync @ blazor.server.js?v=5.6.13:1
(anonymous) @ eventHelper.ts:34
setTimeout
o @ eventHelper.ts:34
(anonymous) @ eventHelper.ts:47
(anonymous) @ eventHelper.ts:109
blazor.server.js?v=5.6.13:1 Uncaught (in promise) Error: Cannot send data if the connection is not in the ‘Connected’ State.
at on.send (blazor.server.js?v=5.6.13:1:81942)
at Jt._sendMessage (blazor.server.js?v=5.6.13:1:59570)
at Jt._sendWithProtocol (blazor.server.js?v=5.6.13:1:59660)
at Jt.send (blazor.server.js?v=5.6.13:1:59768)
at yo.beginInvokeDotNetFromJS (blazor.server.js?v=5.6.13:1:136744)
at w.invokeDotNetMethodAsync (blazor.server.js?v=5.6.13:1:3968)
at E.invokeMethodAsync (blazor.server.js?v=5.6.13:1:5476)
at eventHelper.ts:34:40

Recent System logs:

2026-01-16 17:02:33.063 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://INTERNAL_URL/admin/automation/scripts?folder=Office%20365 - null null

2026-01-16 17:02:33.068 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint ‘/_Host’

2026-01-16 17:02:33.069 -06:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Route matched with {page = “/_Host”, action = “”, controller = “”}. Executing page /_Host

2026-01-16 17:02:33.069 -06:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Executing an implicit handler method - ModelState is “Valid”

2026-01-16 17:02:33.069 -06:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult.

2026-01-16 17:02:33.072 -06:00 [INF][Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker] Executed page /_Host in 2.8637ms

2026-01-16 17:02:33.072 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint ‘/_Host’

2026-01-16 17:02:33.072 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://INTERNAL_URL/admin/automation/scripts?folder=Office%20365 - 200 null text/html; charset=utf-8 8.9955ms

2026-01-16 17:02:33.140 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://INTERNAL_URL/_framework/blazor.server.js?v=5.6.13 - null null

2026-01-16 17:02:33.145 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint ‘Blazor static files’

2026-01-16 17:02:33.145 -06:00 [INF][Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware] The file /_framework/blazor.server.js was not modified

2026-01-16 17:02:33.145 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint ‘Blazor static files’

2026-01-16 17:02:33.145 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://INTERNAL_URL/_framework/blazor.server.js?v=5.6.13 - 304 null text/javascript 5.2329ms

2026-01-16 17:02:33.184 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://INTERNAL_URL/assets/js/addon-fit.js.map - null null

2026-01-16 17:02:33.184 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://INTERNAL_URL/assets/js/g2plot.js.map - null null

2026-01-16 17:02:33.190 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://INTERNAL_URL/assets/js/addon-fit.js.map - 404 0 null 5.9992ms

2026-01-16 17:02:33.191 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://INTERNAL_URL/assets/js/addon-fit.js.map, Response status code: 404

2026-01-16 17:02:33.191 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://INTERNAL_URL/assets/js/g2plot.js.map - 404 0 null 6.4766ms

2026-01-16 17:02:33.191 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://INTERNAL_URL/assets/js/g2plot.js.map, Response status code: 404

2026-01-16 17:02:33.247 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://INTERNAL_URL/_blazor/initializers - null null

2026-01-16 17:02:33.254 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint ‘Blazor initializers’

2026-01-16 17:02:33.254 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint ‘Blazor initializers’

2026-01-16 17:02:33.254 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://INTERNAL_URL/_blazor/initializers - 200 null application/json; charset=utf-8 6.7746ms

2026-01-16 17:02:33.512 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 POST https://INTERNAL_URL/_blazor/negotiate?negotiateVersion=1 - null 0

2026-01-16 17:02:33.514 -06:00 [INF][Microsoft.AspNetCore.Cors.Infrastructure.CorsService] CORS policy execution failed.

2026-01-16 17:02:33.514 -06:00 [INF][Microsoft.AspNetCore.Cors.Infrastructure.CorsService] Request origin https://INTERNAL_URL does not have permission to access the resource.

2026-01-16 17:02:33.517 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint ‘/_blazor/negotiate’

2026-01-16 17:02:33.518 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint ‘/_blazor/negotiate’

2026-01-16 17:02:33.518 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 POST https://INTERNAL_URL/_blazor/negotiate?negotiateVersion=1 - 200 316 application/json 5.9562ms

2026-01-16 17:02:33.536 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://INTERNAL_URL/favicon - null null

2026-01-16 17:02:33.540 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint ‘UniversalAutomation.AliveController.Favicon (Universal.Server)’

2026-01-16 17:02:33.540 -06:00 [INF][Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Route matched with {action = “Favicon”, controller = “Alive”, page = “”}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IActionResult Favicon() on controller UniversalAutomation.AliveController (Universal.Server).

2026-01-16 17:02:33.541 -06:00 [INF][Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Executing action method UniversalAutomation.AliveController.Favicon (Universal.Server) - Validation state: “Valid”

2026-01-16 17:02:33.541 -06:00 [INF][Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Executed action method UniversalAutomation.AliveController.Favicon (Universal.Server), returned result Microsoft.AspNetCore.Mvc.RedirectResult in 0.4551ms.

2026-01-16 17:02:33.541 -06:00 [INF][Microsoft.AspNetCore.Mvc.Infrastructure.RedirectResultExecutor] Executing RedirectResult, redirecting to ./assets/favicon.ico.

2026-01-16 17:02:33.542 -06:00 [INF][Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Executed action UniversalAutomation.AliveController.Favicon (Universal.Server) in 1.2743ms

2026-01-16 17:02:33.542 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint ‘UniversalAutomation.AliveController.Favicon (Universal.Server)’

2026-01-16 17:02:33.542 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://INTERNAL_URL/favicon - 302 0 null 5.7391ms

2026-01-16 17:02:33.595 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 CONNECT https://INTERNAL_URL/_blazor?id=viASirKuVUIzQK7V2eIkyQ - null null

2026-01-16 17:02:33.596 -06:00 [INF][Microsoft.AspNetCore.Cors.Infrastructure.CorsService] CORS policy execution failed.

2026-01-16 17:02:33.596 -06:00 [INF][Microsoft.AspNetCore.Cors.Infrastructure.CorsService] Request origin https://INTERNAL_URL does not have permission to access the resource.

2026-01-16 17:02:33.596 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/2 GET https://INTERNAL_URL/assets/favicon.ico - null null

2026-01-16 17:02:33.601 -06:00 [INF][Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware] Sending file. Request path: ‘/favicon.ico’. Physical path: ‘C:\Program Files (x86)\Universal\wwwroot\favicon.ico’

2026-01-16 17:02:33.601 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 GET https://INTERNAL_URL/assets/favicon.ico - 200 234494 image/x-icon 4.7857ms

2026-01-16 17:02:33.601 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint ‘/_blazor’

2026-01-16 17:02:33.912 -06:00 [INF][Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint ‘/_blazor’

2026-01-16 17:02:33.913 -06:00 [INF][Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/2 CONNECT https://INTERNAL_URL/_blazor?id=viASirKuVUIzQK7V2eIkyQ - 200 null null 317.8387ms

2026-01-16 17:02:33.913 -06:00 [INF][Microsoft.AspNetCore.Server.Kestrel] Connection id “0HNILA4JQEJIE”, Request id “0HNILA4JQEJIE:000001DD”: the application completed without reading the entire request body.

2026-01-16 17:03:10.713 -06:00 [INF][UniversalAutomation.GroomService] Starting groom job.

2026-01-16 17:03:10.776 -06:00 [INF][UniversalAutomation.GroomService] Groom date is: 12/17/2025 11:03:10 PM

2026-01-16 17:03:11.219 -06:00 [INF][UniversalAutomation.GroomService] Finished groom job.

2026-01-16 17:03:33.855 -06:00 [ERR][Universal.Server.Shared.Components.IdleTimeout] An unexpected error occurred while setting idle timeout.

System.Threading.Tasks.TaskCanceledException: A task was canceled.

at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)

at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args)

at Universal.Server.Shared.Components.IdleTimeout.OnAfterRenderAsync(Boolean firstRender) in D:\a\powershell-universal\powershell-universal\src\Universal.Server\Shared\Components\IdleTimeout.razor:line 16

2026-01-16 17:04:10.772 -06:00 [INF][UniversalAutomation.GroomService] Starting groom job.

For anyone else that comes across this, somehow there was a duplicate script entry in scripts.ps1 causing an issue. Removing the duplicate resolved the issue - GitHub issue # 5512