warpdotdev/warp · error
Cloud agent failed
Error message
Cloud agent failed
What it means
Fallback error emitted when follow-up polling observes a terminal, failure-like task state and the server attached no status_message. The generic string replaces the missing server explanation and is yielded as an error event on the stream.
Source
Thrown at app/src/ai/ambient_agents/spawn.rs:292
yield Ok(AmbientAgentEvent::StateChanged {
state: task.state.clone(),
status_message: task.status_message.clone(),
});
}
if task.state.is_terminal() {
if matches!(&mode, RunPollMode::Followup { .. }) {
let exhausted_stale_skips = !seen_working_state
&& skipped_stale_polls >= MAX_STALE_POLLS_BEFORE_FAILURE;
let message = if exhausted_stale_skips {
"Cloud follow-up did not start in time".to_string()
} else {
task.status_message
.as_ref()
.map(|msg| msg.message.clone())
.unwrap_or_else(|| {
if task.state.is_failure_like() {
"Cloud agent failed".to_string()
} else {
"Cloud follow-up finished before a new session became available".to_string()
}
})
};
yield Err(anyhow!(message));
}
return;
}
if task.state == AmbientAgentTaskState::InProgress
&& let Some(session_join_info) = SessionJoinInfo::from_task(&task) {
let has_new_session = match &mode {
RunPollMode::InitialRun
| RunPollMode::Followup {
previous_session_id: None,
} => true,
RunPollMode::Followup {View on GitHub (pinned to e72fd7aacb)
Solutions
- Retry the follow-up run - many backend failures are transient
- Look up the run_id in the cloud dashboard / via get_ambient_agent_task for details the message lacks
- Check Warp and backend status pages for incidents
- If persistent, capture the run_id and report it so the missing status_message can be investigated
Defensive patterns
Strategy: retry
Try / catch
match event {
Err(e) if e.to_string() == "Cloud agent failed" => {
let task = client.get_ambient_agent_task(&run_id).await?; // recover details
show_failure_details(task); offer_retry();
}
other => handle(other),
} Prevention
- Always pass the server-provided status_message through when present - this string is the no-message fallback
- Keep run_id association so failures without messages can be looked up in the dashboard
- Bound automatic retries to avoid loops on permanently failing runs
When it happens
Trigger: get_ambient_agent_task returns a state where task.state.is_terminal() && task.state.is_failure_like(), task.status_message is None, and the run is in RunPollMode::Followup (spawn.rs:287-295).
Common situations: Cloud agent run crashed or was failed by the backend without a status message; infrastructure error killed the run; server version that fails to populate status_message on failure paths.
Related errors
- Cloud follow-up did not start in time
- Cloud follow-up finished before a new session became availab
- Schedule not found
- Failed to delete schedule: {}
- invalid value 'integration'
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/5fc95e816d208bd2.
Report an issue: GitHub.