warpdotdev/warp · error

unexpected argument '--runner' found

Error message

unexpected argument '--runner' found

What it means

Thrown in run_agent for AgentCommand::RunCloud (mod.rs:330): `--runner` parsed, but FeatureFlag::CloudRunners is disabled, so selecting a specific cloud runner for the launch is rejected with clap-mimicking 'unexpected argument' wording. Note the flag here is CloudRunners, distinct from the CloudAgentRunners flag that gates the top-level `runner` subcommand (error 168).

Source

Thrown at app/src/ai/agent_sdk/mod.rs:330

        AgentCommand::RunCloud(args) => {
            if args.environment.environment.is_some()
                && !FeatureFlag::CloudEnvironments.is_enabled()
            {
                return Err(anyhow::anyhow!("unexpected argument '--environment' found"));
            }
            if args.conversation.is_some() && !FeatureFlag::CloudConversations.is_enabled() {
                return Err(anyhow::anyhow!(
                    "unexpected argument '--conversation' found"
                ));
            }
            if args.harness != Harness::Oz && !FeatureFlag::AgentHarness.is_enabled() {
                return Err(anyhow::anyhow!("unexpected argument '--harness' found"));
            }
            if let Err(msg) = args.validate_auth_secrets() {
                return Err(anyhow::anyhow!(msg));
            }
            if args.runner.is_some() && !FeatureFlag::CloudRunners.is_enabled() {
                return Err(anyhow::anyhow!("unexpected argument '--runner' found"));
            }
            ambient::run_ambient_agent(ctx, args)
        }
        AgentCommand::Profile(sub) => profiles::run(ctx, global_options, sub),
        AgentCommand::List(args) => {
            agent_management::list_agents(ctx, global_options.output_format, args)
        }
        AgentCommand::Get(args) => {
            agent_management::get_agent(ctx, global_options.output_format, args)
        }
        AgentCommand::Create(args) => {
            agent_management::create_agent(ctx, global_options.output_format, args)
        }
        AgentCommand::Update(args) => {
            agent_management::update_agent(ctx, global_options.output_format, args)
        }
        AgentCommand::Delete(args) => {
            agent_management::delete_agent(ctx, global_options.output_format, args)

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. Drop `--runner` and let the launch use default runner placement
  2. Use a build/account where CloudRunners is enabled, or update the CLI
  3. As a Warp developer, override the flag or add FeatureFlag::CloudRunners to DOGFOOD_FLAGS and rebuild

Example fix

# before
$ oz agent run-cloud --runner gpu-box "train the model"
Error: unexpected argument '--runner' found

# after
$ oz agent run-cloud "train the model"
Defensive patterns

Strategy: validation

Validate before calling

if args.runner.is_some() {
    anyhow::ensure!(
        FeatureFlag::CloudRunners.is_enabled(),
        "--runner requires CloudRunners"
    );
}

Type guard

pub fn run_cloud_runner_ok(args: &RunCloudArgs) -> bool {
    args.runner.is_none() || FeatureFlag::CloudRunners.is_enabled()
}

Try / catch

match run_agent(ctx, opts, cmd) {
    Err(e) if e.to_string().contains("unexpected argument '--runner'") => {
        // retry with default runner placement
    }
    result => result?,
}

Prevention

When it happens

Trigger: Running `agent run-cloud --runner <id/name> ...` where FeatureFlag::CloudRunners.is_enabled() == false. The check runs after auth-secret validation and immediately before ambient::run_ambient_agent launches the agent.

Common situations: Pinning cloud agents to dedicated runners on gated builds; orgs not enrolled in the cloud-runners rollout; automation assuming runner selection is generally available.

Related errors


AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16). Data as JSON: /api/errors/04273da7daef59e7. Report an issue: GitHub.