warpdotdev/warp · warning
unexpected argument '--skill' found
Error message
unexpected argument '--skill' found
What it means
The --skill argument parses unconditionally but is only honored when FeatureFlag::OzPlatformSkills is enabled; when disabled, run_agent (app/src/ai/agent_sdk/ambient.rs:239) rejects it with a clap-style 'unexpected argument' message so behavior matches help output that hides the flag.
Source
Thrown at app/src/ai/agent_sdk/ambient.rs:239
future: impl Spawnable<Output = anyhow::Result<()>>,
ctx: &mut ModelContext<Self>,
) {
ctx.spawn(future, |_, result, ctx| match result {
Ok(()) => {
ctx.terminate_app(TerminationMode::ForceTerminate, None);
}
Err(err) => {
super::report_fatal_error(err, ctx);
}
});
}
fn run_agent(&self, args: RunCloudArgs, ctx: &mut ModelContext<Self>) -> anyhow::Result<()> {
if !FeatureFlag::AmbientAgentsCommandLine.is_enabled() {
return Err(anyhow::anyhow!("Unsupported feature"));
}
let skill_enabled = FeatureFlag::OzPlatformSkills.is_enabled();
if args.skill.is_some() && !skill_enabled {
return Err(anyhow::anyhow!("unexpected argument '--skill' found"));
}
let refresh_future = super::common::refresh_workspace_metadata(ctx);
let warp_drive_sync_future = super::common::refresh_warp_drive(ctx);
let setup_future = future::try_join(refresh_future, warp_drive_sync_future);
ctx.spawn(setup_future, move |_runner, setup_result, ctx| {
if let Err(err) = setup_result {
super::report_fatal_error(err, ctx);
return;
}
// Validate that at least one of prompt, skill, or conversation is provided.
// conversation is used to continue an existing cloud conversation.
let prompt = args.prompt_arg.to_prompt();
let has_prompt_source = prompt.is_some()
|| (skill_enabled && args.skill.is_some())
|| args.conversation.is_some();View on GitHub (pinned to e72fd7aacb)
Solutions
- Drop --skill and pass --prompt with the skill's text or reference instead
- Run on a build/account where OzPlatformSkills is enabled
Example fix
# before run ... --skill my-skill # after run ... --prompt "<prompt text or saved prompt id>"
Defensive patterns
Strategy: validation
Validate before calling
if args.skill.is_some() && !FeatureFlag::OzPlatformSkills.is_enabled() {
// drop --skill and use --prompt before invoking the command
} Type guard
fn skill_flag_available() -> bool {
FeatureFlag::OzPlatformSkills.is_enabled()
} Prevention
- Do not hard-code --skill in shared scripts; gate it on the skills flag
- Provide a --prompt fallback path in wrappers for environments without the flag
When it happens
Trigger: Passing --skill on a build/account where OzPlatformSkills is disabled (regardless of the AmbientAgentsCommandLine gate, which is checked first).
Common situations: Commands or docs written against a dogfood build re-used on stable; flag rolled back server-side while scripts keep passing --skill.
Related errors
- Unsupported feature
- Attachment upload is not enabled
- expiration behavior is required
- Failed to resolve artifact upload association: no usable --r
- unexpected argument '--skill' found
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/9c1cdbef5b36fd80.
Report an issue: GitHub.