hashicorp/packer · error
The builder %s is unknown by Packer, and is likely part of a
Error message
The builder %s is unknown by Packer, and is likely part of a plugin that is not installed. You may find the needed plugin along with installation instructions documented on the Packer integrations page. https://developer.hashicorp.com/packer/integrations?filter=%s
What it means
The build's underlying component type (e.g. 'amazon-ebs') is not present among the installed builder plugins, so Packer cannot start it. The message links to the integrations page, filtering by the plugin name portion of the type (text before the first '-').
Source
Thrown at packer/core.go:459
}
}
}
return builds, diags
}
// Build returns the Build object for the given name.
func (c *Core) Build(n string) (*CoreBuild, error) {
// Setup the builder
configBuilder, ok := c.builds[n]
if !ok {
return nil, fmt.Errorf("no such build found: %s", n)
}
// BuilderStore = config.Builders, gathered in loadConfig() in main.go
// For reference, the builtin BuilderStore is generated in
// packer/config.go in the Discover() func.
if !c.components.PluginConfig.Builders.Has(configBuilder.Type) {
err := fmt.Errorf(
"The builder %s is unknown by Packer, and is likely part of a plugin that is not installed.\n"+
"You may find the needed plugin along with installation instructions documented on the Packer integrations page.\n\n"+
"https://developer.hashicorp.com/packer/integrations?filter=%s",
configBuilder.Type,
strings.Split(configBuilder.Type, "-")[0],
)
if sugg := didyoumean.NameSuggestion(configBuilder.Type, c.components.PluginConfig.Builders.List()); sugg != "" {
err = fmt.Errorf("Did you mean to use %q?", sugg)
}
return nil, err
}
// the Start command launches the builder plugin of the given type without
// calling Prepare() or passing any build-specific details.
builder, err := c.components.PluginConfig.Builders.Start(configBuilder.Type)
if err != nil {View on GitHub (pinned to eb36e3c3e4)
Solutions
- Run `packer init <template>` in the template directory to install required plugins per required_plugins.
- Install the specific plugin: `packer plugins install <source>`.
- Check `packer plugins installed` and PACKER_PLUGIN_PATH for correct discovery.
- Pin a required_plugins version compatible with your Packer core version.
Example fix
// before
$ packer build . # builder 'amazon-ebs' unknown
// after: add to template and run packer init
packer {
required_plugins {
amazon = { source = "github.com/hashicorp/amazon", version = ">= 1.0.0" }
}
} Defensive patterns
Strategy: validation
Validate before calling
// Ensure required plugins are installed before building:
exec.Command("packer", "init", templatePath).Run() // installs required_plugins
// or check programmatically:
if !core.Components.PluginConfig.Builders.Has(builderType) {
return fmt.Errorf("builder %s missing; run packer plugins install", builderType)
} Prevention
- Always declare required_plugins with pinned versions in the template.
- Run `packer init` as the first CI step on every job/machine.
- Cache the plugin directory in CI (PACKER_PLUGIN_PATH) with restore from cache.
- Avoid renaming plugin binaries manually.
When it happens
Trigger: Core.Build: c.components.PluginConfig.Builders.Has(configBuilder.Type) is false — the template references a builder provided by a plugin that is not installed (or installed under a different version/path). Raised for any `packer build` on such a template.
Common situations: Fresh machine/CI container without `packer init` run; plugin removed or renamed between plugin versions; using a third-party builder without installing its binary; PACKER_PLUGIN_PATH pointing at the wrong directory.
Related errors
- error initializing builder '%s': %s
- builder type not found: %s
- Post-processor failed: %s
- Error destroying builder artifact: %s; bad artifact: %#v
- Did you mean to use %q?
AI-assisted analysis of hashicorp/packer@eb36e3c3e4 (2026-09-05).
Data as JSON: /api/errors/207c1c61ab80516c.
Report an issue: GitHub.