{"record":{"id":"96dd3075a4b017a0","repo":"Devolutions/UniGetUI","slug":"the-current-unigetui-session-cannot-navigate-appli","errorCode":null,"errorMessage":"The current UniGetUI session cannot navigate application pages.","messagePattern":"The current UniGetUI session cannot navigate application pages\\.","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":400,"severity":"warning","filePath":"src/UniGetUI.Interface.IpcApi/IpcServer.cs","lineNumber":512,"sourceCode":"        private async Task V3_ShowApp(HttpContext context)\n        {\n            await HandleCommandAsync(\n                context,\n                () =>\n                    ShowAppHandler?.Invoke()\n                    ?? throw new InvalidOperationException(\n                        \"The current UniGetUI session cannot show a window.\"\n                    )\n            );\n        }\n\n        private async Task V3_NavigateApp(HttpContext context)\n        {\n            await HandleCommandAsync(\n                context,\n                () =>\n                    NavigateAppHandler?.Invoke(BuildAppNavigateRequest(context.Request))\n                    ?? throw new InvalidOperationException(\n                        \"The current UniGetUI session cannot navigate application pages.\"\n                    )\n            );\n        }\n\n        private async Task V3_QuitApp(HttpContext context)\n        {\n            await HandleCommandAsync(\n                context,\n                () =>\n                    QuitAppHandler?.Invoke()\n                    ?? throw new InvalidOperationException(\n                        \"The current UniGetUI session cannot be shut down through automation.\"\n                    )\n            );\n        }\n\n        private async Task V3_ListOperations(HttpContext context)","sourceCodeStart":494,"sourceCodeEnd":530,"githubUrl":"https://github.com/Devolutions/UniGetUI/blob/9b1d7d0eab91620fc15c86b36676532095936ae3/src/UniGetUI.Interface.IpcApi/IpcServer.cs#L494-L530","documentation":"V3_NavigateApp throws when NavigateAppHandler is null: the session cannot navigate UI pages. The GUI host registers it; HeadlessIpcHost registers a throwing handler with a different message; null means a custom host skipped the delegate.","triggerScenarios":"Calling navigate-app on a session whose NavigateAppHandler was never assigned.","commonSituations":"Custom embed; automation fired before wiring completes.","solutions":["Register NavigateAppHandler before Start()","Check IpcAppInfo.CanNavigate before calling navigate-app","Use the provided hosts instead of a bare IpcServer"],"exampleFix":"// before\nawait NavigateAppAsync(page);\n// after\nvar info = await GetAppInfoAsync();\nif (!info.CanNavigate) return Result.Unsupported();\nawait NavigateAppAsync(page);","handlingStrategy":"validation","validationCode":"var info = await GetAppInfoAsync();\nif (!info.CanNavigate)\n    return Result.Unsupported(\"session cannot navigate\");\nawait NavigateAppAsync(page);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Read CanNavigate before navigation automation","Register NavigateAppHandler during host construction"],"tags":["ipc","automation","capability"],"backgroundTag":null,"analyzedSha":"9b1d7d0eab91620fc15c86b36676532095936ae3","analyzedAt":"2026-08-13T12:19:18.278Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}