{"record":{"id":"850a0a2f2f649d55","repo":"warpdotdev/warp","slug":"unexpected-argument-harness-found","errorCode":null,"errorMessage":"unexpected argument '--harness' found","messagePattern":"unexpected argument '--harness' found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/ai/agent_sdk/mod.rs","lineNumber":280,"sourceCode":"    ctx: &mut AppContext,\n    global_options: GlobalOptions,\n    command: AgentCommand,\n) -> anyhow::Result<()> {\n    match command {\n        AgentCommand::Run(args) => {\n            if args.environment.is_some() && !FeatureFlag::CloudEnvironments.is_enabled() {\n                return Err(anyhow::anyhow!(\"unexpected argument '--environment' found\"));\n            }\n            if args.conversation.is_some() && !FeatureFlag::CloudConversations.is_enabled() {\n                return Err(anyhow::anyhow!(\n                    \"unexpected argument '--conversation' found\"\n                ));\n            }\n            if args.skill.is_some() && !FeatureFlag::OzPlatformSkills.is_enabled() {\n                return Err(anyhow::anyhow!(\"unexpected argument '--skill' found\"));\n            }\n            if args.harness != Harness::Oz && !FeatureFlag::AgentHarness.is_enabled() {\n                return Err(anyhow::anyhow!(\"unexpected argument '--harness' found\"));\n            }\n            if args.harness == Harness::OpenCode {\n                return Err(anyhow::anyhow!(\n                    \"The opencode harness is only supported for local child agent launches.\"\n                ));\n            }\n\n            let server_api = ServerApiProvider::handle(ctx).as_ref(ctx).get_ai_client();\n\n            // Start the agent driver runner, which will handle the rest of the setup steps\n            // (managing both sync and async steps) as well as triggering the driver.\n            let runner = ctx.add_singleton_model(|_| AgentDriverRunner);\n            runner.update(ctx, move |_, ctx| {\n                let spawner = ctx.spawner();\n                ctx.spawn(\n                    AgentDriverRunner::setup_and_run_driver(\n                        spawner,\n                        args,","sourceCodeStart":262,"sourceCodeEnd":298,"githubUrl":"https://github.com/warpdotdev/warp/blob/e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc/app/src/ai/agent_sdk/mod.rs#L262-L298","documentation":"Thrown in run_agent for AgentCommand::Run (mod.rs:280): a non-default `--harness` value parsed (the arg is hidden, default Harness::Oz), but FeatureFlag::AgentHarness is disabled, so delegating to an external harness CLI (claude/codex/gemini/opencode) is rejected with clap-mimicking 'unexpected argument' wording.","triggerScenarios":"Running `agent run --harness claude|codex|gemini|opencode ...` where FeatureFlag::AgentHarness.is_enabled() == false. The default oz harness never triggers this; any explicit non-Oz value does.","commonSituations":"Handing an agent run to the claude or codex CLI on a gated build; CI reusing dogfood invocations; builds where external-harness delegation has not shipped.","solutions":["Omit `--harness` to use the default Warp (oz) agent","Use a build/account where AgentHarness is enabled, or update the CLI","As a Warp developer, override the flag or add FeatureFlag::AgentHarness to DOGFOOD_FLAGS and rebuild"],"exampleFix":"# before\n$ oz agent run --harness claude \"refactor module\"\nError: unexpected argument '--harness' found\n\n# after\n$ oz agent run \"refactor module\"","handlingStrategy":"validation","validationCode":"if args.harness != Harness::Oz {\n    anyhow::ensure!(\n        FeatureFlag::AgentHarness.is_enabled(),\n        \"--harness requires AgentHarness\"\n    );\n}\nif args.harness == Harness::OpenCode {\n    anyhow::bail!(\"opencode is only supported for local child agent launches\");\n}","typeGuard":"pub fn harness_arg_ok(args: &AgentRunArgs) -> bool {\n    args.harness == Harness::Oz\n        || (FeatureFlag::AgentHarness.is_enabled() && args.harness != Harness::OpenCode)\n}","tryCatchPattern":"match run_agent(ctx, opts, cmd) {\n    Err(e) if e.to_string().contains(\"unexpected argument '--harness'\") => {\n        // harness delegation gated; rerun with default oz harness\n    }\n    result => result?,\n}","preventionTips":["Default to Harness::Oz in generated invocations; only set --harness when probed available","Remember --harness is a hidden arg (default oz) - its absence is the supported baseline","Pair harness selection with an AgentHarness availability check in wrappers"],"tags":["cli","feature-flags","agent-harness","rust","clap"],"backgroundTag":null,"analyzedSha":"e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc","analyzedAt":"2026-08-16T08:27:25.381Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}