warpdotdev/warp · error

No Warp dev images available.

Error message

No Warp dev images available.

What it means

Reported by report_fatal_error during `warp environment create` when no --docker-image was supplied and the server's ListWarpDevImages response succeeds but contains an empty images list. Because the interactive base-image prompt (prompt_for_docker_image) has nothing to offer — not even the 'Custom Docker image' fallback entry, which is only appended after the emptiness check — creation aborts fatally.

Source

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

    }

    /// Fetch images from server and prompt user to select one. Calls continuation with selected image.
    fn prompt_for_docker_image<F>(continuation: F, ctx: &mut ModelContext<Self>)
    where
        F: FnOnce(String, &mut ModelContext<Self>) + Send + 'static,
    {
        const CUSTOM_IMAGE_OPTION: &str = "Custom Docker image";

        let server_api = ServerApiProvider::as_ref(ctx).get();
        let operation = ListWarpDevImages::build(ListWarpDevImagesVariables {});
        let fetch_images = async move { server_api.send_graphql_request(operation, None).await };

        ctx.spawn(fetch_images, move |_, result, ctx| match result {
            Ok(response) => match response.list_warp_dev_images {
                ListWarpDevImagesResult::ListWarpDevImagesOutput(output) => {
                    if output.images.is_empty() {
                        super::report_fatal_error(
                            anyhow::anyhow!("No Warp dev images available."),
                            ctx,
                        );
                        return;
                    }

                    println!(
                        "No docker image provided, please select a base image.\n"
                    );
                    println!(
                        "All warpdotdev images contain Python and Node, in addition to language-specific tooling. For more info: {}\n",
                        WARP_DEV_ENVIRONMENTS_REPO
                    );

                    let mut image_choices: Vec<String> =
                        output.images.into_iter().map(|img| img.image).collect();
                    image_choices.push(CUSTOM_IMAGE_OPTION.to_string());

                    let selected_image = match Select::new("Select a base image:", image_choices)

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. Pass an explicit base image to bypass the prompt: `warp environment create --docker-image <image> ...`
  2. Retry later — a temporarily empty catalog often repopulates
  3. Update the client and confirm the server version serves the image list (`warp environment image list`)
  4. If running your own warp-server, seed/enable the warp dev images catalog

Example fix

# before
warp environment create --name dev --repo owner/repo

# after
warp environment create --name dev --repo owner/repo --docker-image warpdotdev/base:latest
Defensive patterns

Strategy: fallback

Validate before calling

// Check catalog health before prompting (interactive create path):
// warp environment image list  # if empty/failing, pass --docker-image explicitly

Try / catch

if output.images.is_empty() {
    // fall back instead of aborting: skip the prompt and require an explicit image
    // e.g. terminate with a hint to re-run with --docker-image
}

Prevention

When it happens

Trigger: Running `warp environment create` without --docker-image while the server's image catalog is empty for your account/region, or a server-side catalog population job has not run/failed.

Common situations: New server deployments before the warpdotdev image catalog is seeded; server-side feature flag disabling dev images; local warp-server without catalog data; transient catalog outage during maintenance.

Related errors


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