pulumi/pulumi · error
resources file reference %q: %w
Error message
resources file reference %q: %w
What it means
For each resources-file reference, resourceReferenceProviderState locates the owning provider's state. If that helper fails, the error is wrapped as "resources file reference %q: ...". This is a wrapping boundary — the cause (e.g. missing provider for the resource's package) is in the wrapped error.
Source
Thrown at pkg/cmd/pulumi/do/do_resource_upsert.go:589
for name, rawURN := range resources {
urn := resource.URN(rawURN)
state, ok := statesByURN[urn]
if !ok {
return nil, fmt.Errorf("resources file references %q as %s, but that resource was not found in the stack", name, urn)
}
typ := state.Type
pkg := typ.Package()
if sdkproviders.IsProviderType(typ) {
pkg = sdkproviders.GetProviderPackage(typ)
}
packageReq := &codegenrpc.GetSchemaRequest{
Package: string(pkg),
}
providerState, err := resourceReferenceProviderState(state, providersByRef)
if err != nil {
return nil, fmt.Errorf("resources file reference %q: %w", name, err)
}
if providerState != nil {
providerPackage := sdkproviders.GetProviderPackage(providerState.Type)
schemaPackage, err := deployproviders.GetProviderName(providerPackage, providerState.Inputs)
if err != nil {
return nil, fmt.Errorf("resources file reference %q: get provider name: %w", name, err)
}
packageReq.Package = string(schemaPackage)
version, err := deployproviders.GetProviderVersion(providerState.Inputs)
if err != nil {
return nil, fmt.Errorf("resources file reference %q: get provider version: %w", name, err)
}
if version != nil {
packageReq.Version = version.String()
}
downloadURL, err := deployproviders.GetProviderDownloadURL(providerState.Inputs)View on GitHub (pinned to 793f7b2e16)
Solutions
- Read the wrapped cause and run `pulumi refresh`/`pulumi up` to recreate missing provider resources in the stack.
- Check `pulumi stack export` for provider resources of the referenced resource's package; re-import state if missing.
- Regenerate the resources file excluding resources whose providers cannot be resolved, then address them individually.
Defensive patterns
Strategy: try-catch
Validate before calling
for _, r := range exported.Resources {
if isProviderType(r.Type) { providerPkgs[r.Type.Package()] = true }
}
for name, urn := range refs {
pkg := resource.URN(urn).Type().Package()
if !providerPkgs[pkg] {
return fmt.Errorf("reference %q needs a %s provider that is missing from the stack", name, pkg)
}
} Prevention
- Ensure `pulumi up` has created all providers before running stateful reference commands.
- Never partially destroy provider resources a snippet still depends on.
- Inspect stack export for provider resources of each referenced package first.
When it happens
Trigger: A referenced resource's provider state cannot be resolved — e.g. the resource depends on a provider that is absent from providersByRef because the snapshot lacks the provider resource, or provider/dependency linkage is inconsistent.
Common situations: Stack state missing provider resources after partial destroy or manual state surgery; resources referencing a provider configured in a different stack/project.
Related errors
- could not build provider reference for %s: %w
- state migration for %s removes or renames provider state %s;
- state migration for %s changes provider state %s; provider s
- state migration for %s introduces provider state %s; provide
- snapshot integrity failure; refusing to use it: %w
AI-assisted analysis of pulumi/pulumi@793f7b2e16 (2026-08-31).
Data as JSON: /api/errors/7356e44d848acb1e.
Report an issue: GitHub.