warpdotdev/warp · error · anyhow::Error
Runner '{id}' not found
Error message
Runner '{id}' not found What it means
Runner resolution by UID scanned the fetched runner list and found no runner whose uid equals the given id. The list is whatever the server returned for the current workspace/team scope, so a correct UID in the wrong scope also misses.
Source
Thrown at app/src/ai/agent_sdk/runner.rs:234
}
Ok(inquire::Confirm::new(&format!("Delete runner '{uid}'?"))
.with_default(false)
.prompt()
.unwrap_or_default())
}
/// Resolve a runner by UID or (unambiguous) name from a fetched list.
fn resolve_runner<'a>(
runners: &'a [Runner],
id: Option<&str>,
name: Option<&str>,
) -> Result<&'a Runner> {
if let Some(id) = id {
return runners
.iter()
.find(|runner| runner.uid.inner() == id)
.ok_or_else(|| anyhow!("Runner '{id}' not found"));
}
let name = name.ok_or_else(|| anyhow!("A runner UID or --name is required"))?;
let matches: Vec<&Runner> = runners
.iter()
.filter(|runner| runner.config.name == name)
.collect();
match matches.as_slice() {
[] => Err(anyhow!("Runner '{name}' not found")),
[runner] => Ok(runner),
_ => Err(anyhow!(
"Multiple runners match '{name}'; specify the runner by UID"
)),
}
}
/// Build the [`RunnerInput`] for a create operation.
fn build_create_input(args: CreateRunnerArgs, owner: GqlOwner) -> UpsertRunnerInput {View on GitHub (pinned to e72fd7aacb)
Solutions
- Run `warp runner list` and copy the exact UID
- Confirm you are operating in the right workspace/team scope for the runner
- In idempotent cleanup scripts, treat this error as an acceptable terminal state
Example fix
# before warp runner delete rnr_12AB34 # typo in the UID # after warp runner list warp runner delete <exact-uid-from-list>
Defensive patterns
Strategy: validation
Validate before calling
# Verify the UID exists in the current scope before mutating
warp runner list 2>/dev/null | jq -e --arg u "$uid" '.[].uid == $u' >/dev/null || { echo "runner $uid not found in current scope" >&2; exit 1; }
warp runner delete "$uid" Try / catch
out=$(warp runner delete "$uid" 2>&1) || { case "$out" in *"not found"*) echo 'already gone; treating as success' >&2; exit 0;; *) echo "$out" >&2; exit 1;; esac; } Prevention
- List runners and copy UIDs verbatim rather than typing them
- Confirm workspace/team scope matches where the runner lives
- Make cleanup scripts idempotent by accepting not-found as success
When it happens
Trigger: `warp runner delete/get <uid>` (any path through resolve_runner with an explicit id) where the UID is mistyped, belongs to another workspace, or the runner was already deleted.
Common situations: Truncated or transposed UIDs; re-running a cleanup script after the runner was already removed; being logged into a different team than the one owning the runner.
Related errors
- Runner '{name}' not found
- Saved prompt with ID '{id}' not found
- API key '{key_identifier}' not found
- Refusing to delete runner '{uid}' without confirmation in no
- A runner UID or --name is required
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/383abb15ec524d15.
Report an issue: GitHub.