pulumi/pulumi · error

failed to load language plugin %s: %w

Error message

failed to load language plugin %s: %w

What it means

Thrown when `pulumi new` cannot load the language runtime plugin for the project's runtime (e.g. nodejs, python, go) via pluginCtx.Host.LanguageRuntime. The language host binary could not be found, installed, or started, so follow-up generation/restore steps cannot run.

Source

Thrown at pkg/cmd/pulumi/project/newcmd/new.go:387

		ctx,
		projinfo,
		pluginHost,
		cmdutil.Diag(),
		cmdutil.Diag(),
		false, /* disableProviderPreview */
		nil,   /* tracingSpan */
		nil,   /* config */
	)
	if err != nil {
		return err
	}
	defer pluginCtx.Close()

	// If we're creating an empty project we won't have a runtime name
	if proj.Runtime.Name() != "" {
		lang, err := pluginCtx.Host.LanguageRuntime(pluginCtx, proj.Runtime.Name())
		if err != nil {
			return fmt.Errorf("failed to load language plugin %s: %w", proj.Runtime.Name(), err)
		}
		defer lang.Close()

		programInfo := plugin.NewProgramInfo(pluginCtx.Root, pluginCtx.Pwd, entryPoint, proj.Runtime.Options())

		// Query the language runtime for additional options.
		if args.promptRuntimeOptions != nil {
			options, err := args.promptRuntimeOptions(pluginCtx, lang, &proj.Runtime, entryPoint, opts,
				args.yes, args.interactive, args.prompt)
			if err != nil {
				return err
			}
			if len(options) > 0 {
				// Save the new options
				for k, v := range options {
					proj.Runtime.SetOption(k, v)
				}
				if err = pkgWorkspace.SaveProject(proj); err != nil {

View on GitHub (pinned to 793f7b2e16)

Solutions

  1. Verify the runtime name in Pulumi.yaml is a supported one (nodejs, python, go, dotnet, yaml, ...)
  2. Ensure the language plugin is installed/available and the CLI can reach the plugin source (network/proxy)
  3. Clear or repair the plugin cache and reinstall (delete ~/.pulumi/plugins entries for the language host)
  4. Upgrade the Pulumi CLI so the bundled language host matches your version
  5. Check the wrapped error for launch details (missing binary, exec format error, etc.)

Example fix

// before (Pulumi.yaml)
runtime: nodejss
// after
runtime: nodejs
Defensive patterns

Strategy: retry

Validate before calling

grep -E '^runtime:' Pulumi.yaml  # confirm the runtime is one of: nodejs python go dotnet yaml

Try / catch

pulumi new my-template || pulumi new my-template  # retry once to rule out transient plugin fetch failure

Prevention

When it happens

Trigger: Project runtime set to a language whose plugin is missing/incompatible; plugin install blocked by network; LanguageRuntime call fails at plugin launch.

Common situations: Custom or typo'd runtime name in Pulumi.yaml; offline environment preventing plugin download; corrupted plugin cache; a version of the language plugin incompatible with the CLI.

Related errors


AI-assisted analysis of pulumi/pulumi@793f7b2e16 (2026-08-31). Data as JSON: /api/errors/daeb31f1b8ca697d. Report an issue: GitHub.