warpdotdev/warp · warning
No updates requested
Error message
No updates requested
What it means
The agent-update command assembles an UpdateAgentRequest from the provided flags (fetching the current agent only when secrets/skills change); request_is_empty detects that every field of the built request is None and returns this anyhow error (app/src/ai/agent_sdk/agent_management.rs:176) instead of sending an empty mutation. It is an argument-validation guard, fail-fast before any API call.
Source
Thrown at app/src/ai/agent_sdk/agent_management.rs:176
output_format: OutputFormat,
ctx: &mut ModelContext<Self>,
) -> anyhow::Result<()> {
let ai_client = ServerApiProvider::as_ref(ctx).get_ai_client();
let future = async move {
let uid = args.uid.clone();
let json_output = args.json_output.clone();
let needs_current_agent = !args.add_secrets.is_empty()
|| !args.remove_secrets.is_empty()
|| !args.add_skills.is_empty()
|| !args.remove_skills.is_empty();
let current_agent = if needs_current_agent {
Some(ai_client.get_agent(&uid).await?)
} else {
None
};
let request = build_update_request(args, current_agent.as_ref());
if request_is_empty(&request) {
return Err(anyhow!("No updates requested"));
}
if matches!(output_format, OutputFormat::Json) || json_output.force_json_output() {
let response = ai_client.update_agent_raw(&uid, request).await?;
super::output::print_raw_json(response, &json_output)?;
} else {
let agent = ai_client.update_agent(&uid, request).await?;
print_single_agent(&agent, output_format)?;
}
Ok(())
};
self.spawn_command(future, ctx);
Ok(())
}
fn delete(
&self,
args: AgentDeleteArgs,View on GitHub (pinned to e72fd7aacb)
Solutions
- Add at least one actual change flag (e.g. --description, --add-secret, --add-skill, --base-model) to the command
- If you meant to inspect the agent, use the get/show subcommand instead
Example fix
# before agent update my-agent # after agent update my-agent --description "new description"
Defensive patterns
Strategy: validation
Validate before calling
let has_any_update = !args.add_secrets.is_empty()
|| !args.remove_secrets.is_empty()
|| !args.add_skills.is_empty()
|| !args.remove_skills.is_empty()
|| args.name.is_some()
|| args.description.is_some();
if !has_any_update {
// skip invoking `agent update`; nothing would be sent
} Try / catch
match run_update(args, ctx).await {
Err(e) if e.to_string() == "No updates requested" => {
// fix the caller: require at least one change flag before dispatch
}
rest => rest,
} Prevention
- Validate that at least one change flag is present before dispatching update commands
- In scripts, fail fast on empty flag sets instead of relying on the server round-trip
When it happens
Trigger: Running agent update passing only the agent id and output flags — no --name/--description, no add/remove secrets, no add/remove skills, no model or environment change.
Common situations: Scripts templating update commands with all-change-flags commented out; users expecting `update` with no changes to be a no-op or a refresh.
Related errors
- Invalid repo format: '{}'. Expected 'owner/repo' or 'https:/
- --sort-by and --sort-order are not supported with JSON outpu
- Either --prompt, --skill, or --conversation must be provided
- Too many attachments. Maximum {} attachments allowed, but {}
- Streaming commands require `--output-format ndjson`
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/0a07b1f87f35138e.
Report an issue: GitHub.