warpdotdev/warp · error

unexpected argument '--conversation' found

Error message

unexpected argument '--conversation' found

What it means

Thrown in run_agent for AgentCommand::Run (mod.rs:272): `--conversation <ID>` parsed, but FeatureFlag::CloudConversations is disabled, so the handler returns a clap-mimicking 'unexpected argument' error. The argument resumes an existing cloud conversation by ID; when the feature is off it is treated as unknown.

Source

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

        ResolveSkillError::CloneFailed { org, repo, message } => {
            format!("Failed to clone repository '{org}/{repo}': {message}")
        }
    }
}

/// Run the agent with the provided command.
fn run_agent(
    ctx: &mut AppContext,
    global_options: GlobalOptions,
    command: AgentCommand,
) -> anyhow::Result<()> {
    match command {
        AgentCommand::Run(args) => {
            if args.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.skill.is_some() && !FeatureFlag::OzPlatformSkills.is_enabled() {
                return Err(anyhow::anyhow!("unexpected argument '--skill' found"));
            }
            if args.harness != Harness::Oz && !FeatureFlag::AgentHarness.is_enabled() {
                return Err(anyhow::anyhow!("unexpected argument '--harness' found"));
            }
            if args.harness == Harness::OpenCode {
                return Err(anyhow::anyhow!(
                    "The opencode harness is only supported for local child agent launches."
                ));
            }

            let server_api = ServerApiProvider::handle(ctx).as_ref(ctx).get_ai_client();

            // Start the agent driver runner, which will handle the rest of the setup steps

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. Omit `--conversation` and start a fresh run
  2. Use a build/account with CloudConversations enabled, or update the CLI
  3. As a Warp developer, override the flag or add FeatureFlag::CloudConversations to DOGFOOD_FLAGS and rebuild

Example fix

# before
$ oz agent run --conversation abc123 "continue"
Error: unexpected argument '--conversation' found

# after
$ oz agent run "continue"
Defensive patterns

Strategy: validation

Validate before calling

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

Type guard

pub fn can_resume_conversation(args: &AgentRunArgs) -> bool {
    args.conversation.is_none() || FeatureFlag::CloudConversations.is_enabled()
}

Try / catch

match run_agent(ctx, opts, cmd) {
    Err(e) if e.to_string().contains("unexpected argument '--conversation'") => {
        // start a fresh conversation instead of resuming
    }
    result => result?,
}

Prevention

When it happens

Trigger: Running `agent run --conversation <id>` where FeatureFlag::CloudConversations.is_enabled() == false. Presence of the parsed Option is enough; the value itself is not validated before the gate.

Common situations: Resume-in-place workflows scripted on gated builds; conversation IDs copied from a dogfood session; builds where cloud conversations rolled back or the account lost enrollment.

Related errors


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