{"record":{"id":"03033add00d99e4a","repo":"warpdotdev/warp","slug":"no-warp-dev-images-available","errorCode":null,"errorMessage":"No Warp dev images available.","messagePattern":"No Warp dev images available\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/ai/agent_sdk/environment.rs","lineNumber":357,"sourceCode":"    }\n\n    /// Fetch images from server and prompt user to select one. Calls continuation with selected image.\n    fn prompt_for_docker_image<F>(continuation: F, ctx: &mut ModelContext<Self>)\n    where\n        F: FnOnce(String, &mut ModelContext<Self>) + Send + 'static,\n    {\n        const CUSTOM_IMAGE_OPTION: &str = \"Custom Docker image\";\n\n        let server_api = ServerApiProvider::as_ref(ctx).get();\n        let operation = ListWarpDevImages::build(ListWarpDevImagesVariables {});\n        let fetch_images = async move { server_api.send_graphql_request(operation, None).await };\n\n        ctx.spawn(fetch_images, move |_, result, ctx| match result {\n            Ok(response) => match response.list_warp_dev_images {\n                ListWarpDevImagesResult::ListWarpDevImagesOutput(output) => {\n                    if output.images.is_empty() {\n                        super::report_fatal_error(\n                            anyhow::anyhow!(\"No Warp dev images available.\"),\n                            ctx,\n                        );\n                        return;\n                    }\n\n                    println!(\n                        \"No docker image provided, please select a base image.\\n\"\n                    );\n                    println!(\n                        \"All warpdotdev images contain Python and Node, in addition to language-specific tooling. For more info: {}\\n\",\n                        WARP_DEV_ENVIRONMENTS_REPO\n                    );\n\n                    let mut image_choices: Vec<String> =\n                        output.images.into_iter().map(|img| img.image).collect();\n                    image_choices.push(CUSTOM_IMAGE_OPTION.to_string());\n\n                    let selected_image = match Select::new(\"Select a base image:\", image_choices)","sourceCodeStart":339,"sourceCodeEnd":375,"githubUrl":"https://github.com/warpdotdev/warp/blob/e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc/app/src/ai/agent_sdk/environment.rs#L339-L375","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Pass an explicit base image to bypass the prompt: `warp environment create --docker-image <image> ...`","Retry later — a temporarily empty catalog often repopulates","Update the client and confirm the server version serves the image list (`warp environment image list`)","If running your own warp-server, seed/enable the warp dev images catalog"],"exampleFix":"# before\nwarp environment create --name dev --repo owner/repo\n\n# after\nwarp environment create --name dev --repo owner/repo --docker-image warpdotdev/base:latest","handlingStrategy":"fallback","validationCode":"// Check catalog health before prompting (interactive create path):\n// warp environment image list  # if empty/failing, pass --docker-image explicitly","typeGuard":null,"tryCatchPattern":"if output.images.is_empty() {\n    // fall back instead of aborting: skip the prompt and require an explicit image\n    // e.g. terminate with a hint to re-run with --docker-image\n}","preventionTips":["Always pass --docker-image in automation so the catalog is not needed","Probe `warp environment image list` before interactive creates on fresh setups","Update client/server when the catalog is unexpectedly empty","Treat an empty catalog as a server-side data issue, not a local misconfiguration"],"tags":["rust","cli","docker","empty-list","server-data"],"backgroundTag":null,"analyzedSha":"e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc","analyzedAt":"2026-08-16T08:27:25.381Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}