pulumi/pulumi · error
could not parameterize extension for resource %v: %w
Error message
could not parameterize extension for resource %v: %w
What it means
After ensuring the provider plugin is loaded, the engine calls ensureProviderExtension(res) to configure/parameterize any provider extension (e.g. a parameterized/multi-language provider component) for the resource being refreshed. If that parameterization fails, this wrapped error names the resource URN and the underlying cause.
Source
Thrown at pkg/resource/deploy/deployment_executor.go:815
for _, dep := range allDeps {
if excludesActual.Contains(dep.URN) {
excludesActual.addLiteral(res.URN)
knownToBeExcluded = true
break
}
}
}
if !knownToBeExcluded {
// For each resource we're going to refresh we need to ensure we have a provider for it
err := ex.deployment.EnsureProvider(res.Provider)
if err != nil {
return fmt.Errorf("could not load provider for resource %v: %w", res.URN, err)
}
if err := ex.deployment.ensureProviderExtension(res); err != nil {
return fmt.Errorf("could not parameterize extension for resource %v: %w", res.URN, err)
}
oldViews := ex.deployment.GetOldViews(res.URN)
step := NewRefreshStep(ex.deployment, nil, res, oldViews, nil)
steps = append(steps, step)
resourceToStep[res] = step
}
}
} else {
targetsActual := ex.deployment.opts.Targets
for _, res := range prev.Resources {
// If we're only doing RefreshBeforeUpdate refreshes and the resource isn't
// marked as such, skip it.
if refreshBeforeUpdateOnly && !res.RefreshBeforeUpdate {
continue
}
View on GitHub (pinned to 793f7b2e16)
Solutions
- Upgrade the Pulumi CLI to the latest version (parameterization support is version-sensitive)
- Reinstall/upgrade the specific provider package named in the underlying error
- If the state reference is corrupted, restore the stack from `pulumi stack export`/backup or contact support
- Reproduce with `--logtostderr -v=9` to capture the inner error from ensureProviderExtension
Example fix
// before $ pulumi refresh error: could not parameterize extension for resource urn:...::tf::bucket: unknown parameterization // after $ pulumi version # upgrade CLI $ curl -sSL https://get.pulumi.com | sh $ pulumi refresh
Defensive patterns
Strategy: validation
Validate before calling
# check CLI supports parameterized providers before operating on the stack [[ $(pulumi version | tr -d v) < 3.80.0 ]] && echo 'upgrade CLI for parameterized providers' && exit 1
Prevention
- Keep the Pulumi CLI at or above the version that created the stack state
- Avoid swapping a provider package for a differently-parameterized one without an explicit migration
- Never manually edit the provider blob in exported stack JSON
- Upgrade provider packages in lockstep across environments
When it happens
Trigger: Refreshing (or updating with refresh) a resource whose provider is a parameterized provider (Pulumi Packages / bridged multi-language providers) when the extension cannot be constructed — bad parameter payload in state, missing sub-plugin, or unsupported provider kind.
Common situations: State created by a newer Pulumi engine with parameterized providers read by an older CLI; a provider package renamed or replaced between versions; corrupted provider reference in the checkpoint file.
Related errors
- could not load provider for resource %v: %w
- --yes or --skip-preview or --preview-only must be passed in
- invalid --output value %q (expected %q or %q)
- getting stack configuration: %w
- gathering environment metadata: %w
AI-assisted analysis of pulumi/pulumi@793f7b2e16 (2026-08-31).
Data as JSON: /api/errors/cfe920cf596416be.
Report an issue: GitHub.