Devolutions/UniGetUI · warning · InvalidOperationException

The current UniGetUI session cannot navigate application pag

Error message

The current UniGetUI session cannot navigate application pages.

What it means

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.

Source

Thrown at src/UniGetUI.Interface.IpcApi/IpcServer.cs:512

        private async Task V3_ShowApp(HttpContext context)
        {
            await HandleCommandAsync(
                context,
                () =>
                    ShowAppHandler?.Invoke()
                    ?? throw new InvalidOperationException(
                        "The current UniGetUI session cannot show a window."
                    )
            );
        }

        private async Task V3_NavigateApp(HttpContext context)
        {
            await HandleCommandAsync(
                context,
                () =>
                    NavigateAppHandler?.Invoke(BuildAppNavigateRequest(context.Request))
                    ?? throw new InvalidOperationException(
                        "The current UniGetUI session cannot navigate application pages."
                    )
            );
        }

        private async Task V3_QuitApp(HttpContext context)
        {
            await HandleCommandAsync(
                context,
                () =>
                    QuitAppHandler?.Invoke()
                    ?? throw new InvalidOperationException(
                        "The current UniGetUI session cannot be shut down through automation."
                    )
            );
        }

        private async Task V3_ListOperations(HttpContext context)

View on GitHub (pinned to 9b1d7d0eab)

Solutions

  1. Register NavigateAppHandler before Start()
  2. Check IpcAppInfo.CanNavigate before calling navigate-app
  3. Use the provided hosts instead of a bare IpcServer

Example fix

// before
await NavigateAppAsync(page);
// after
var info = await GetAppInfoAsync();
if (!info.CanNavigate) return Result.Unsupported();
await NavigateAppAsync(page);
Defensive patterns

Strategy: validation

Validate before calling

var info = await GetAppInfoAsync();
if (!info.CanNavigate)
    return Result.Unsupported("session cannot navigate");
await NavigateAppAsync(page);

Prevention

When it happens

Trigger: Calling navigate-app on a session whose NavigateAppHandler was never assigned.

Common situations: Custom embed; automation fired before wiring completes.

Related errors


AI-assisted analysis of Devolutions/UniGetUI@9b1d7d0eab (2026-08-13). Data as JSON: /api/errors/96dd3075a4b017a0. Report an issue: GitHub.