{"record":{"id":"c744e5dcd630c2bb","repo":"warpdotdev/warp","slug":"unexpected-argument-conversation-found","errorCode":null,"errorMessage":"unexpected argument '--conversation' found","messagePattern":"unexpected argument '--conversation' found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/ai/agent_sdk/mod.rs","lineNumber":272,"sourceCode":"        ResolveSkillError::CloneFailed { org, repo, message } => {\n            format!(\"Failed to clone repository '{org}/{repo}': {message}\")\n        }\n    }\n}\n\n/// Run the agent with the provided command.\nfn run_agent(\n    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","sourceCodeStart":254,"sourceCodeEnd":290,"githubUrl":"https://github.com/warpdotdev/warp/blob/e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc/app/src/ai/agent_sdk/mod.rs#L254-L290","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Omit `--conversation` and start a fresh run","Use a build/account with CloudConversations enabled, or update the CLI","As a Warp developer, override the flag or add FeatureFlag::CloudConversations to DOGFOOD_FLAGS and rebuild"],"exampleFix":"# before\n$ oz agent run --conversation abc123 \"continue\"\nError: unexpected argument '--conversation' found\n\n# after\n$ oz agent run \"continue\"","handlingStrategy":"validation","validationCode":"if args.conversation.is_some() {\n    anyhow::ensure!(\n        FeatureFlag::CloudConversations.is_enabled(),\n        \"--conversation requires CloudConversations\"\n    );\n}","typeGuard":"pub fn can_resume_conversation(args: &AgentRunArgs) -> bool {\n    args.conversation.is_none() || FeatureFlag::CloudConversations.is_enabled()\n}","tryCatchPattern":"match run_agent(ctx, opts, cmd) {\n    Err(e) if e.to_string().contains(\"unexpected argument '--conversation'\") => {\n        // start a fresh conversation instead of resuming\n    }\n    result => result?,\n}","preventionTips":["Persist conversation IDs together with the build/channel that created them","Validate resume workflows after channel or version switches","Strip conversation flags in tooling when the feature probe is negative"],"tags":["cli","feature-flags","conversations","rust","clap"],"backgroundTag":null,"analyzedSha":"e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc","analyzedAt":"2026-08-16T08:27:25.381Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}