warpdotdev/warp · error

Failed to fetch images

Error message

Failed to fetch images

What it means

Reported by report_fatal_error when the `warp environment image list` GraphQL query (ListWarpDevImages) completes at the transport level but the response's list_warp_dev_images field is the UserFacingError or Unknown variant instead of ListWarpDevImagesOutput. This means the Warp server accepted the request but returned an error payload or an unrecognized enum variant. The original server-side message inside the enum variant is discarded and replaced with this generic text.

Source

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

                            repository: img.repository,
                            tag: img.tag,
                        })
                        .collect();

                    if matches!(
                        global_options.output_format,
                        OutputFormat::Text | OutputFormat::Pretty
                    ) {
                        println!(
                            "All Warp dev images contain Python and Node. For more information, see: {}\n",
                            WARP_DEV_ENVIRONMENTS_REPO
                        );
                    }
                    output::print_list(image_infos, global_options.output_format);
                    ctx.terminate_app(warpui::platform::TerminationMode::ForceTerminate, None);
                }
                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,

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. Verify you are logged in and retry the command
  2. Check network connectivity and the server URL (SERVER_ROOT_URL) if using a local warp-server
  3. Update the Warp client so its generated GraphQL schema matches the server
  4. If running a local warp-server, confirm it implements listWarpDevImages and inspect its logs for the underlying error
Defensive patterns

Strategy: retry

Validate before calling

// Preflight: confirm the server endpoint answers before running the command
// (adjust to your configured SERVER_ROOT_URL)
// curl -fsS "$SERVER_ROOT_URL/graphql" -o /dev/null || echo "server unreachable"

Try / catch

// In Rust, branch on the enum instead of assuming the success variant
match response.list_warp_dev_images {
    ListWarpDevImagesResult::ListWarpDevImagesOutput(out) => { /* use out.images */ },
    ListWarpDevImagesResult::UserFacingError(e) => { /* surface e, decide retry */ },
    ListWarpDevImagesResult::Unknown => { /* log schema mismatch, update client */ },
}

Prevention

When it happens

Trigger: Executing the ImageCommand::List subcommand while not authenticated, with an expired auth token, when the server has no image catalog available for the account, or when the client's generated GraphQL schema is older than the server and the response contains a variant the client cannot decode (Unknown).

Common situations: Running the CLI logged out or after token expiry; pointing SERVER_ROOT_URL/WS_SERVER_URL at a local warp-server build that lacks the list_warp_dev_images resolver; client/server version skew after a server-side API change; server-side outage returning a user-facing error.

Related errors


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