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

  1. Retry the follow-up run - many backend failures are transient
  2. Look up the run_id in the cloud dashboard / via get_ambient_agent_task for details the message lacks
  3. Check Warp and backend status pages for incidents
  4. 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

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


AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16). Data as JSON: /api/errors/5fc95e816d208bd2. Report an issue: GitHub.