warpdotdev/warp · error
invalid value 'runner'
Error message
invalid value 'runner'
What it means
Thrown by the dispatcher arm for CliCommand::Runner (mod.rs:220) when `runner` parsed but FeatureFlag::CloudAgentRunners is disabled. The clap-shaped 'invalid value' error hides the cloud-runner management subcommand when the flag is off. Flag defaults to false; not in the always-on lists.
Source
Thrown at app/src/ai/agent_sdk/mod.rs:220
return Err(anyhow::anyhow!("invalid value 'harness-support'"));
}
harness_support::run(ctx, global_options, args)
}
CliCommand::Artifact(artifact_cmd) => {
if !FeatureFlag::ArtifactCommand.is_enabled() {
return Err(anyhow::anyhow!("invalid value 'artifact'"));
}
artifact::run(ctx, global_options, artifact_cmd)
}
CliCommand::ApiKey(api_key_cmd) => {
if !FeatureFlag::APIKeyManagement.is_enabled() {
return Err(anyhow::anyhow!("invalid value 'api-key'"));
}
api_key::run(ctx, global_options, api_key_cmd)
}
CliCommand::Runner(runner_cmd) => {
if !FeatureFlag::CloudAgentRunners.is_enabled() {
return Err(anyhow::anyhow!("invalid value 'runner'"));
}
runner::run(ctx, global_options, runner_cmd)
}
}
}
fn format_skill_resolution_error(err: ResolveSkillError) -> String {
match err {
ResolveSkillError::NotFound { skill } => {
format!("Skill '{skill}' not found")
}
ResolveSkillError::RepoNotFound { repo } => {
format!("Repository '{repo}' not found")
}
ResolveSkillError::Ambiguous { skill, candidates } => {
let mut msg = format!(
"Skill '{skill}' is ambiguous; specify as repo:skill_name\n\nCandidates:\n"
);View on GitHub (pinned to e72fd7aacb)
Solutions
- Use a build/account where CloudAgentRunners is enabled
- Update to a version where cloud runners shipped to your channel
- As a Warp developer, override the flag or add FeatureFlag::CloudAgentRunners to DOGFOOD_FLAGS and rebuild
- Remove the `runner` step if cloud runners are not actually needed
Example fix
# before
$ oz runner list
Error: invalid value 'runner'
# after
if FeatureFlag::CloudAgentRunners.is_enabled() {
runner::run(ctx, global_options, cmd)?;
} Defensive patterns
Strategy: validation
Validate before calling
if matches!(cmd, CliCommand::Runner(_))
&& !FeatureFlag::CloudAgentRunners.is_enabled()
{
return Ok(());
} Type guard
pub fn runner_cmd_available() -> bool {
FeatureFlag::CloudAgentRunners.is_enabled()
} Try / catch
match agent_sdk::run(ctx, opts, cmd) {
Err(e) if e.to_string() == "invalid value 'runner'" => {
// runner management gated; note it and use default placement
}
result => result?,
} Prevention
- Distinguish this subcommand gate (CloudAgentRunners) from run-cloud's --runner gate (CloudRunners) when probing
- Provision runners out-of-band if the subcommand is gated
- Track which flag gates which surface in your runbook, not in memory
When it happens
Trigger: Invoking `<cli> runner <subcmd>` (manage cloud agent runners) where FeatureFlag::CloudAgentRunners.is_enabled() == false. Distinct from error 179's --runner argument gate, which uses FeatureFlag::CloudRunners on `agent run-cloud`.
Common situations: Provisioning self-managed cloud runners from a release-channel binary; orgs not enrolled in the cloud-runners beta; scripts assuming parity between dogfood and release CLI surfaces.
Related errors
- invalid value 'integration'
- invalid value 'schedule'
- invalid value 'secret'
- invalid value 'harness-support'
- invalid value 'artifact'
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/47d88be1a39073b2.
Report an issue: GitHub.