warpdotdev/warp · error

Timed out waiting for Warp Drive to sync

Error message

Timed out waiting for Warp Drive to sync

What it means

Reported by report_fatal_error when the initial Warp Drive sync future (UpdateManager::initial_load_complete().with_timeout(WARP_DRIVE_SYNC_TIMEOUT)) resolves to Err before `warp environment list` reads CloudAmbientAgentEnvironment::get_all. The timeout is 60 seconds (WARP_DRIVE_SYNC_TIMEOUT, driver.rs:172). Environments are cloud objects replicated through Warp Drive, so the command refuses to list from a possibly incomplete local cache.

Source

Thrown at app/src/ai/agent_sdk/environment.rs:195

                ListWarpDevImagesResult::UserFacingError(_) | ListWarpDevImagesResult::Unknown => {
                    super::report_fatal_error(anyhow::anyhow!("Failed to fetch images"), ctx);
                }
            },
            Err(err) => {
                super::report_fatal_error(anyhow::anyhow!("Failed to fetch images: {}", err), ctx);
            }
        });
    }

    fn list(&self, global_options: GlobalOptions, ctx: &mut ModelContext<Self>) {
        let initial_sync = UpdateManager::as_ref(ctx)
            .initial_load_complete()
            .with_timeout(WARP_DRIVE_SYNC_TIMEOUT);

        ctx.spawn(initial_sync, move |_, result, ctx| {
            if result.is_err() {
                super::report_fatal_error(
                    anyhow::anyhow!("Timed out waiting for Warp Drive to sync"),
                    ctx,
                );
                return;
            }

            let environments = CloudAmbientAgentEnvironment::get_all(ctx);

            let environment_infos: Vec<_> = environments
                .iter()
                .map(|environment| {
                    let name = environment.model().string_model.name.clone();
                    let description = environment.model().string_model.description.clone();
                    let base_image = environment.model().string_model.base_image.clone();
                    let github_repos = environment.model().string_model.github_repos.clone();
                    let setup_commands = environment.model().string_model.setup_commands.clone();

                    let creator_email = environment
                        .metadata()

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. Verify you are logged in and have network access, then retry the command
  2. Retry once after a minute — slow first sync is the most common cause
  3. Check that the configured server endpoint is reachable (SERVER_ROOT_URL for local-server setups)
  4. If it reproduces consistently, inspect logs for Warp Drive sync errors (auth failures, WebSocket issues) and re-login
  5. File an issue if sync is permanently stuck while other Drive features work
Defensive patterns

Strategy: retry

Validate before calling

// Warm the Drive before listing: run a trivial authenticated call and wait,
// or simply retry `warp environment list` once after ~60s on first run.

Try / catch

if result.is_err() {
    // sync gate failed: distinguish timeout (retry later) from auth failure (re-login)
    super::report_fatal_error(anyhow::anyhow!("Timed out waiting for Warp Drive to sync"), ctx);
}

Prevention

When it happens

Trigger: Running `warp environment list` when the first Warp Drive sync has not completed within 60s — slow network, server unreachable, not logged in (sync never starts), or a stalled sync after process resume.

Common situations: First run of the CLI on a new machine before initial cloud-object load finishes; constrained/offline networks; expired login credentials so the sync never progresses; a large Drive taking over a minute on slow links; local warp-server that is down.

Understand the failure class

Related errors


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