pulumi/pulumi · error
install %q: %w
Error message
install %q: %w
What it means
In `LoadConverterPlugin` (pkg/cmd/pulumi/convert/io.go:54), when `plugin.NewConverter` reports a `*workspace.MissingError` and auto plugin acquisition is enabled, the CLI calls `pkgWorkspace.InstallPlugin` to fetch the converter. This error wraps any failure of that install — download failure, no matching version in the registry, checksum mismatch, or network issues.
Source
Thrown at pkg/cmd/pulumi/convert/io.go:54
pluginSpec, err := workspace.NewPluginDescriptor(ctx.Request(), name, apitype.ConverterPlugin, nil, "", nil)
if err != nil {
return nil, fmt.Errorf("could not load converter plugin: %w", err)
}
// Try and load the converter plugin for this
converter, err := plugin.NewConverter(ctx, pluginSpec.Name, pluginSpec.Version)
if err != nil {
// If NewConverter returns a MissingError, we can try and install the plugin if it was missing and try again,
// unless auto plugin installs are turned off.
_, ok := errors.AsType[*workspace.MissingError](err)
if !ok || env.DisableAutomaticPluginAcquisition.Value() {
// Not a MissingError, return the original error.
return nil, fmt.Errorf("load %q: %w", name, err)
}
_, err = pkgWorkspace.InstallPlugin(ctx.Base(), pluginSpec, log, schema.NewLoaderServerFromContext)
if err != nil {
return nil, fmt.Errorf("install %q: %w", name, err)
}
converter, err = plugin.NewConverter(ctx, pluginSpec.Name, pluginSpec.Version)
if err != nil {
return nil, fmt.Errorf("load %q: %w", name, err)
}
}
return converter, nil
}
View on GitHub (pinned to 793f7b2e16)
Solutions
- Check network access to the plugin registry (PULUMI_GET_WILY / downloads.pulumi.com) and proxy env (HTTPS_PROXY)
- Pre-install the plugin: `pulumi plugin install converter <name> <version>` and confirm the version exists with `pulumi plugin ls --help` / registry
- Free disk space in ~/.pulumi/plugins (prune old plugins: `pulumi plugin rm --all --yes` for unused)
- If behind a corporate proxy, configure the proxy or mirror the plugin manually into ~/.pulumi/plugins
- Retry — transient registry/network errors are common in CI
Example fix
// before: proxied CI pulumi convert --from terraform --out ./proj # install "terraform": download failed // after curl -I https://api.github.com # verify egress, set proxy export HTTPS_PROXY=http://proxy.corp:8080 pulumi plugin install converter terraform && pulumi convert --from terraform --out ./proj
Defensive patterns
Strategy: retry
Validate before calling
pulumi plugin install converter terraform 2>&1 || { echo "pre-flight install failed; check network/proxy"; exit 1; } Prevention
- Pre-install plugins in your CI image so convert never downloads at run time
- Configure HTTPS_PROXY and verify egress to Pulumi's plugin registry
- Keep ~/.pulumi on a volume with free space
- Pin known-good plugin versions
When it happens
Trigger: Converter plugin not installed locally and `InstallPlugin` fails: no network/proxy blocks downloads.pulumi.com, requested version doesn't exist, disk full in ~/.pulumi/plugins, or download verification failure.
Common situations: Air-gapped or proxied CI environments; requesting a nonexistent plugin version; full home partition preventing plugin extraction; corporate TLS interception breaking downloads.
Related errors
- could not load converter plugin: %w
- load %q: %w
- could not get latest version for plugin %s: %w
- failed to download plugin: %s: %w
- installing plugin; run `pulumi plugin install %s %s v%s` to
AI-assisted analysis of pulumi/pulumi@793f7b2e16 (2026-08-31).
Data as JSON: /api/errors/91a787b8e415817c.
Report an issue: GitHub.