hashicorp/packer · error

Your configuration file describes some legacy components: %

Error message

Your configuration file describes some legacy components: 
%sPacker does not support these mono-component plugins anymore.
Please refer to our Installing Plugins docs for an overview of how to manage installation of local plugins:
https://developer.hashicorp.com/packer/docs/plugins/install-plugins

What it means

Startup error from Packer's config loader: the HCL/JSON configuration declares components that embed a local plugin `path` (legacy mono-component plugins), which Packer no longer supports. The message lists each offending component path.

Source

Thrown at config.go:62

		return paths
	}

	var pluginPaths []string
	pluginPaths = append(pluginPaths, extractPaths(c.RawProvisioners)...)
	pluginPaths = append(pluginPaths, extractPaths(c.RawBuilders)...)
	pluginPaths = append(pluginPaths, extractPaths(c.RawPostProcessors)...)

	if len(pluginPaths) == 0 {
		return nil
	}

	componentList := &strings.Builder{}
	for _, path := range pluginPaths {
		fmt.Fprintf(componentList, "- %s\n", path)
	}

	return fmt.Errorf("Your configuration file describes some legacy components: \n%s"+
		"Packer does not support these mono-component plugins anymore.\n"+
		"Please refer to our Installing Plugins docs for an overview of how to manage installation of local plugins:\n"+
		"https://developer.hashicorp.com/packer/docs/plugins/install-plugins",
		componentList.String())
}

// This is a proper packer.BuilderFunc that can be used to load packersdk.Builder
// implementations from the defined plugins.
func (c *config) StartBuilder(name string) (packersdk.Builder, error) {
	log.Printf("Loading builder: %s\n", name)
	return c.Plugins.Builders.Start(name)
}

// This is a proper implementation of packer.HookFunc that can be used
// to load packersdk.Hook implementations from the defined plugins.
func (c *config) StarHook(name string) (packersdk.Hook, error) {
	log.Printf("Loading hook: %s\n", name)
	return c.Plugins.Client(name).Hook()

View on GitHub (pinned to eb36e3c3e4)

Solutions

  1. Remove the `path` fields from component blocks and rely on packer init / required_plugins to fetch plugins
  2. Install the needed plugins locally via `packer plugins install` and reference them by type instead of path
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at config.go:62 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of hashicorp/packer@eb36e3c3e4 (2026-09-05). Data as JSON: /api/errors/bcc36e412af15afa. Report an issue: GitHub.