stride3d/stride · error · OptionException

Host pipe not specified

Error message

Host pipe not specified

What it means

Program.Main requires the --host command-line option, which names the named pipe used to reach IGameDebuggerHost. If hostPipe is still null after parsing (the --host flag was absent or empty), Main throws OptionException before opening the WCF named-pipe channel.

Solutions

  1. Pass the host pipe: Stride.Debugger.exe --host <pipeName>, using the pipe name provided by the Stride editor/host process.
  2. Fix the launch profile or launcher script so the --host argument is always supplied.
  3. Verify the option binding (waitDebuggerAttach/hostPipe fields in Program.cs) matches the flag names used on the command line.

Example fix

// before
Stride.Debugger.exe

// after
Stride.Debugger.exe --host "stride-game-debugger-pipe"
Defensive patterns

Strategy: validation

Validate before calling

// Check required args before process start
if (!args.Contains("--host") || string.IsNullOrWhiteSpace(hostPipeName))
    throw new ArgumentException("Stride.Debugger requires --host <pipeName>");

Prevention

When it happens

Trigger: Starting Stride.Debugger.exe without --host <pipeName>, or with --host given an empty value, so hostPipe remains null at the check in Program.cs:69.

Common situations: Launching the debugger executable manually instead of through the Stride editor; a broken editor launch profile that lost the --host argument; scripts building the command line conditionally and dropping the host option.

Understand the failure class

Background: "Must pass :limit option" / "Missing required option" — required option errors explained — this error's family across 41 libraries.

Related errors


AI-assisted analysis of stride3d/stride@96fad776d2 (2026-09-14). Data as JSON: /api/errors/22bfc5a7f06dda98. Report an issue: GitHub.

Appendix: source

Thrown at sources/engine/Stride.Debugger/Program.cs:69

                }

                if (waitDebuggerAttach)
                {
                    // Wait for 2 second max
                    for (int i = 0; i < 500; ++i)
                    {
                        if (System.Diagnostics.Debugger.IsAttached)
                        {
                            break;
                        }

                        Thread.Sleep(10);
                    }
                }

                if (hostPipe == null)
                {
                    throw new OptionException("Host pipe not specified", "host");
                }

                // Open WCF channel with master builder
                try
                {
                    using (var channel = new NpClient<IGameDebuggerHost>(new NpEndPoint(hostPipe)))
                    {
                        var gameDebuggerTarget = new GameDebuggerTarget();
                        gameDebuggerTarget.MainLoop(channel.Proxy);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
            catch (OptionException e)
            {

View on GitHub (pinned to 96fad776d2)