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
- Verify you are logged in and have network access, then retry the command
- Retry once after a minute — slow first sync is the most common cause
- Check that the configured server endpoint is reachable (SERVER_ROOT_URL for local-server setups)
- If it reproduces consistently, inspect logs for Warp Drive sync errors (auth failures, WebSocket issues) and re-login
- 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
- Log in and let the first Drive sync finish (verify with any cloud list command) before scripting lists
- Keep the machine online during the first minute after launch
- Re-login when cloud commands start timing out — expired credentials stall sync
- Retry once before investigating; 60s first-sync overruns are common on slow links
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
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
- Timed out refreshing team metadata
- Timed out waiting for Warp Drive to sync
- Failed to fetch images: {}
- Failed to fetch images: {err}
- Error polling OAuth status: {err}
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/283793a81dd438a8.
Report an issue: GitHub.