xai-org/grok-build · error

no target specified

Error message

no target specified

What it means

to_url() builds the HTTP base URL for a ptyctl session target. It accepts an explicit port or a session name resolved via the registry; if neither is provided it has no way to know which server to talk to, so it fails with this error.

Source

Thrown at crates/codegen/ptyctl-cli/src/cli.rs:225

}

impl Target {
    /// Resolve target to a base URL.
    pub fn to_url(&self) -> anyhow::Result<String> {
        if let Some(ref h) = self.host {
            if h.starts_with("http") {
                return Ok(h.clone());
            }
            return Ok(format!("http://{h}"));
        }
        if let Some(p) = self.port {
            return Ok(format!("http://127.0.0.1:{p}"));
        }
        if let Some(ref n) = self.name {
            let info = crate::registry::lookup_session(n)?;
            return Ok(format!("http://127.0.0.1:{}", info.port));
        }
        anyhow::bail!("no target specified")
    }
}

View on GitHub (pinned to bc7f02eddd)

Solutions

  1. Pass the session name, e.g. `ptyctl --name mysession screen`
  2. Pass an explicit port (`--port <p>` or equivalent) if you know the server's port
  3. Run `ptyctl list` (or inspect the registry dir) to find the session name, then retry with --name
  4. In code, ensure the target struct has either `name` or port set before calling to_url()

Example fix

// before
ptyctl screen --format text
// after
ptyctl --name dev-session screen --format text
Defensive patterns

Strategy: validation

Validate before calling

fn validate_target(name: Option<&str>, port: Option<u16>) -> Result<(), String> {
    if name.is_none() && port.is_none() {
        return Err("no target: pass --name <session> or --port <port>".into());
    }
    Ok(())
}

Prevention

When it happens

Trigger: Calling to_url() (directly or via any command in the ptyctl CLI) when neither a port nor a --name/session name was specified on the CLI or in the resolved options struct.

Common situations: Running `ptyctl keys ...`, `screen`, `stop`, etc. without `--name <session>` (or an explicit port); scripting against the CLI after dropping the session-name argument; defaults missing from a wrapper script.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31). Data as JSON: /api/errors/35eabc3d1f1a48ac. Report an issue: GitHub.