Pulumi Error: 'no resource plugin found, run pulumi plugin install'
Fix Pulumi's 'no resource plugin ... found in the workspace or on your $PATH, run pulumi plugin install' error: install the missing provider plugin and align versions so preview and up succeed.
- #pulumi
- #iac
- #troubleshooting
- #errors
Stuck on this Pulumi error? Get the free incident triage checklist
A one-page PDF — the exact steps to isolate, fix, and verify a production error like this one. No spam, unsubscribe anytime.
Exact Error Message
error: no resource plugin 'aws-v6.42.0' found in the workspace or on your $PATH,
run `pulumi plugin install resource aws v6.42.0`
error: could not load plugin for aws provider
'urn:pulumi:prod::app::pulumi:providers:aws::default_6_42_0': no resource plugin
'aws' found in the workspace at version v6.42.0
A generic form during pulumi up looks like:
error: failed to load resource plugin: gcp: could not read plugin
[/home/ci/.pulumi/plugins/resource-gcp-v7.20.0]: file does not exist
What It Means
Pulumi separates the language SDK you import in code from the resource provider plugin, a downloaded binary that actually talks to the cloud API. Plugins live in ~/.pulumi/plugins (or a workspace cache). When Pulumi builds the resource graph it looks up the exact provider and version each resource needs, and if that binary is not present on disk or on $PATH, it stops with this error.
This is almost always an environment/provisioning gap rather than a code bug: a clean CI runner, a wiped plugin cache, an air-gapped host with no registry access, or a version bump in the SDK that requires a plugin no one has installed yet. The fix is to install the named plugin at the named version.
Common Causes
- A fresh CI runner or container has an empty
~/.pulumi/pluginscache. - The provider SDK was upgraded in code, so a newer plugin version is now required than what is installed.
pulumi install(which fetches SDK packages and plugins) was skipped in the pipeline.- An air-gapped or restricted-network host cannot reach
get.pulumi.comto auto-download the plugin. - The plugin cache was cleared (
pulumi plugin rm --all) or the volume was not persisted between CI jobs.
Diagnostic Commands
List every plugin currently installed and its version:
pulumi plugin ls
See which providers and versions the program requires:
grep -Rn "Pulumi.Aws\|@pulumi/aws\|pulumi-aws" package.json go.mod *.csproj 2>/dev/null
Confirm network reachability to the plugin registry (for auto-download):
curl -sI https://get.pulumi.com/releases/plugins/ | head -n1
Inspect the plugin directory on the failing host:
ls -la ~/.pulumi/plugins
Step-by-Step Resolution
- Install the exact plugin and version named in the error message:
pulumi plugin install resource aws v6.42.0
- Prefer the project-wide installer, which reads your SDK dependencies and pulls both packages and matching plugins in one step:
pulumi install
- Verify the plugin now appears at the required version:
pulumi plugin ls
- For air-gapped hosts, download the plugin tarball elsewhere and install it from a local file with
--file:
pulumi plugin install resource aws v6.42.0 --file ./pulumi-resource-aws-v6.42.0-linux-amd64.tar.gz
- In CI, cache
~/.pulumi/pluginsbetween runs so the download happens once, and runpulumi installbeforepulumi up:
pulumi install
pulumi up --yes --stack prod
- Re-run the original command to confirm the plugin loads:
pulumi preview --stack prod
Prevention
- Run
pulumi installas an explicit early step in every pipeline, beforepreview/up. - Persist or cache the
~/.pulumi/pluginsdirectory across CI jobs to avoid repeated downloads and rate limits. - Pin provider versions in your SDK dependencies so the required plugin version is deterministic.
- For air-gapped environments, mirror provider tarballs internally and install with
--file. - When bumping a provider SDK, run
pulumi installlocally so the new plugin is fetched before the change reaches CI.
Related Errors
resource provider version mismatch— a plugin is installed but at the wrong version.could not load plugin for provider— a broader load failure, sometimes a corrupt cache.failed to load language plugin— the language host, not a resource provider, is missing.unknown provider type— the resource type has no provider registered at all.
Frequently Asked Questions
What is the difference between pulumi install and pulumi plugin install? pulumi install reads your project and installs both language SDK packages and every required provider plugin at once. pulumi plugin install resource <name> <version> installs a single provider plugin explicitly — useful when you know exactly what is missing.
Why does this only fail in CI? Fresh CI runners start with an empty plugin cache. Local machines usually have the plugin from earlier work, so the gap only shows up on clean environments. Caching the plugin directory fixes it.
How do I install a plugin without internet access? Download the correct pulumi-resource-<name>-<version>-<os>-<arch>.tar.gz on a connected machine and run pulumi plugin install resource <name> <version> --file <tarball> on the air-gapped host.
Do I have to match the version in the error exactly? Yes for the quickest fix — install the named version. Long term, run pulumi install so the version stays aligned with whatever your SDK dependency pins. Prebuilt provisioning snippets are in the prompt library.
Where are more provider and plugin fixes? See the full Pulumi guides for related troubleshooting.
Fixed it? Get 500 Pulumi & DevOps AI prompts — free
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.
Did this fix your issue?
Get 500 Battle-Tested DevOps AI Prompts — Free
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.