hashicorp/packer · error
The post-processor %s is unknown by Packer, and is likely pa
Error message
The post-processor %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
Thrown by Core.Build in packer/core.go:536 when a template declares a post-processor whose type is not registered in the loaded PluginConfig. Packer cannot find a plugin binary providing that post-processor, so the build cannot be constructed. The message includes an integrations-page link filtered on the plugin prefix (the part before the first '-').
Source
Thrown at packer/core.go:536
for _, rawPs := range c.Template.PostProcessors {
current := make([]CoreBuildPostProcessor, 0, len(rawPs))
for _, rawP := range rawPs {
if rawP.Skip(rawName) {
continue
}
// -except skips post-processor & build
foundExcept := false
for _, except := range c.except {
if except != "" && except == rawP.Name {
foundExcept = true
}
}
if foundExcept {
break
}
if !c.components.PluginConfig.PostProcessors.Has(rawP.Type) {
err := fmt.Errorf(
"The post-processor %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",
rawP.Type,
strings.Split(rawP.Type, "-")[0],
)
if sugg := didyoumean.NameSuggestion(rawP.Type, c.components.PluginConfig.PostProcessors.List()); sugg != "" {
err = fmt.Errorf("Did you mean to use %q?", sugg)
}
return nil, err
}
// Get the post-processor
postProcessor, err := c.components.PluginConfig.PostProcessors.Start(rawP.Type)
if err != nil {
return nil, fmt.Errorf(View on GitHub (pinned to eb36e3c3e4)
Solutions
- Run `packer init <template>` to install plugins declared in required_plugins, or run `packer plugins install <source>` for the missing plugin
- Check the integrations page link in the error for the correct plugin and its install instructions
- Verify the post-processor type spelling in the HCL template (check for typos)
- If following older docs, replace a removed built-in post-processor (e.g. vagrant, checksum) with the equivalent community plugin
Example fix
// before (template references plugin not installed)
post-processors {
type = "vagrant"
}
// after (add to packer block and run packer init)
packer {
required_plugins {
vagrant = { version = ">= 1.0.0", source = "github.com/hashicorp/vagrant" }
}
} Defensive patterns
Strategy: validation
Validate before calling
# before running a build, verify the plugin is present packer init . packer plugins installed grep -R 'post-processor\|post-processors' *.pkr.hcl
Prevention
- Always run `packer init` after cloning a template repo
- Declare all plugins in the packer block's required_plugins with pinned versions
- Keep plugin names in sync with the integrations page documentation
- Run `packer validate` in CI before any build
When it happens
Trigger: Calling Core.Build (directly or via GetBuilds/packer validate/packer build) while c.components.PluginConfig.PostProcessors.Has(rawP.Type) returns false — i.e. the template's post-processor 'type' matches no discovered plugin, and no close NameSuggestion match exists.
Common situations: Using a built-in-legacy post-processor name that was removed or renamed in Packer 1.13+ (plugins were split out of core); forgetting `packer init` / `required_plugins` so the plugin binary was never downloaded; plugin installed under a different name than the template references; typo in the type string.
Related errors
- error initializing post-processor '%s': %s
- post-processor type not found: %s
- Post-processor failed: %s
- Did you mean to use %q?
- No files specified in artifice configuration
AI-assisted analysis of hashicorp/packer@eb36e3c3e4 (2026-09-05).
Data as JSON: /api/errors/4eb60801840ab718.
Report an issue: GitHub.