oven-sh/bun · error
No base image found: ${inspect(options)}
Error message
No base image found: ${inspect(options)} What it means
After building an AMI name pattern from platform options, getBaseImage() calls describeImages with owner-alias + name filters; zero matches throws. The pattern was syntactically fine but nothing in this region matches owner+name.
Source
Thrown at scripts/machine.mjs:407
if (!distro || distro === "server") {
owner = "amazon";
name = `Windows_Server-${release || "*"}-English-Full-Base-*`;
}
}
if (!name) {
throw new Error(`Unsupported platform: ${inspect(options)}`);
}
const baseImages = await aws.describeImages({
"state": "available",
"owner-alias": owner,
"name": name,
});
// console.table(baseImages.map(v => v.Name));
if (!baseImages.length) {
throw new Error(`No base image found: ${inspect(options)}`);
}
const [baseImage] = baseImages;
return aws.getAvailableImage(baseImage);
},
/**
* @param {MachineOptions} options
* @returns {Promise<Machine>}
*/
async createMachine(options) {
const { os, arch, imageId, instanceType, tags, sshKeys, preemptible } = options;
/** @type {AwsImage} */
let image;
if (imageId) {
image = await aws.getAvailableImage(imageId);
} else {View on GitHub (pinned to 8c5296ac45)
Solutions
- List matching images manually to see what exists: `aws ec2 describe-images --owners <owner> --filters Name=name,Values='<pattern>' --region <region>`
- Relax release to '*' (omit it) to get the latest available image
- Accept marketplace terms for the account, or pass an explicit imageId
- Confirm you're searching the region the machine will run in
Example fix
// before
await aws.getBaseImage({ os: 'linux', arch: 'x64', distro: 'ubuntu', release: '24.04' });
// after (fall back to latest matching release)
await aws.getBaseImage({ os: 'linux', arch: 'x64', distro: 'ubuntu' }); Defensive patterns
Strategy: validation
Validate before calling
// Probe the pattern before launching anything
const count = await $`aws ec2 describe-images --owners ${owner} --filters Name=name,Values=${name} --query 'length(Images)'`.text();
if (Number(count) === 0) {
throw new Error(`no AMIs match owner=${owner} name=${name} — relax release or pass imageId`);
} Prevention
- Omit release (it defaults to '*') when you just need the latest base image
- Accept marketplace terms for aws-marketplace owners before using centos images
- Prefer explicit imageId pins for reproducible CI machines
When it happens
Trigger: release filter too specific (e.g. ubuntu '24.04' pattern not published under owner 099720109477 in that region); aws-marketplace CentOS subscription not accepted in the account; images for that release were deprecated/removed; wrong region for that owner alias.
Common situations: A new distro release string that hasn't propagated to AMI names yet; running in a region where the canonical owner doesn't publish that image; marketplace terms not accepted so describeImages hides them.
Related errors
- Failed to find available image: ${imageId}
- Failed to run instances: ${inspect(instanceOptions)}
- Failed to get password data for instance: ${instanceId}
- Failed to import key pair: ${keyName}
- Unsupported platform: ${inspect(options)}
AI-assisted analysis of oven-sh/bun@8c5296ac45 (2026-08-16).
Data as JSON: /api/errors/746a1b9b12400d4a.
Report an issue: GitHub.