{"record":{"id":"4eb60801840ab718","repo":"hashicorp/packer","slug":"the-post-processor-s-is-unknown-by-packer-and-is","errorCode":null,"errorMessage":"The post-processor %s is unknown by Packer, and is likely part of a plugin that is not installed.\nYou may find the needed plugin along with installation instructions documented on the Packer integrations page.\n\nhttps://developer.hashicorp.com/packer/integrations?filter=%s","messagePattern":"The post-processor (.+?) is unknown by Packer, and is likely part of a plugin that is not installed\\.\nYou may find the needed plugin along with installation instructions documented on the Packer integrations page\\.\n\nhttps://developer\\.hashicorp\\.com/packer/integrations\\?filter=(.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packer/core.go","lineNumber":536,"sourceCode":"\tfor _, rawPs := range c.Template.PostProcessors {\n\t\tcurrent := make([]CoreBuildPostProcessor, 0, len(rawPs))\n\t\tfor _, rawP := range rawPs {\n\t\t\tif rawP.Skip(rawName) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// -except skips post-processor & build\n\t\t\tfoundExcept := false\n\t\t\tfor _, except := range c.except {\n\t\t\t\tif except != \"\" && except == rawP.Name {\n\t\t\t\t\tfoundExcept = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif foundExcept {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tif !c.components.PluginConfig.PostProcessors.Has(rawP.Type) {\n\t\t\t\terr := fmt.Errorf(\n\t\t\t\t\t\"The post-processor %s is unknown by Packer, and is likely part of a plugin that is not installed.\\n\"+\n\t\t\t\t\t\t\"You may find the needed plugin along with installation instructions documented on the Packer integrations page.\\n\\n\"+\n\t\t\t\t\t\t\"https://developer.hashicorp.com/packer/integrations?filter=%s\",\n\t\t\t\t\trawP.Type,\n\t\t\t\t\tstrings.Split(rawP.Type, \"-\")[0],\n\t\t\t\t)\n\n\t\t\t\tif sugg := didyoumean.NameSuggestion(rawP.Type, c.components.PluginConfig.PostProcessors.List()); sugg != \"\" {\n\t\t\t\t\terr = fmt.Errorf(\"Did you mean to use %q?\", sugg)\n\t\t\t\t}\n\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Get the post-processor\n\t\t\tpostProcessor, err := c.components.PluginConfig.PostProcessors.Start(rawP.Type)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(","sourceCodeStart":518,"sourceCodeEnd":554,"githubUrl":"https://github.com/hashicorp/packer/blob/eb36e3c3e48a036f3e8cc94087636ee72e1303c9/packer/core.go#L518-L554","documentation":"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 '-').","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before (template references plugin not installed)\npost-processors {\n  type = \"vagrant\"\n}\n// after (add to packer block and run packer init)\npacker {\n  required_plugins {\n    vagrant = { version = \">= 1.0.0\", source = \"github.com/hashicorp/vagrant\" }\n  }\n}","handlingStrategy":"validation","validationCode":"# before running a build, verify the plugin is present\npacker init .\npacker plugins installed\ngrep -R 'post-processor\\|post-processors' *.pkr.hcl","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["packer","plugin","post-processor","configuration"],"backgroundTag":"missing-packager-plugin","analyzedSha":"eb36e3c3e48a036f3e8cc94087636ee72e1303c9","analyzedAt":"2026-09-05T13:20:43.127Z","contentChangedAt":"2026-09-05T13:20:43.127Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}