Pulumi Error: 'unknown resource type aws:s3/bucketv2:BucketV2' — Cause, Fix, and Troubleshooting Guide
Fix Pulumi 'unknown resource type aws:s3/bucketv2:BucketV2' — correct the resource token or install/pin the provider plugin version that defines it.
- #pulumi
- #iac
- #troubleshooting
- #errors
Fixing errors like this? Get 500 free DevOps AI prompts
500 copy-paste AI prompts for the stack you actually run — one PDF, free.
Overview
error: unknown resource type 'aws:s3/bucketv2:BucketV2' means the Pulumi engine asked a provider plugin to create a resource, but that provider does not recognize the resource token you used. A resource token has the form <package>:<module>/<type>:<Type> (for example aws:s3/bucketV2:BucketV2). The engine routes the request to the aws provider plugin, and the plugin looks the token up in its schema. If it is not there, you get this error.
error: unknown resource type 'aws:s3/bucketv2:BucketV2'
There are two flavors of this problem. Either the token is wrong (a typo, wrong casing, or a renamed/removed resource), or the installed provider version does not define that token (too old, too new, or a version drift between your SDK and the plugin). Note that tokens are case-sensitive: bucketv2 is not the same as bucketV2.
Symptoms
pulumi uporpulumi previewfails withunknown resource type '<package>:<module>/<type>:<Type>'.- You recently upgraded or downgraded a provider SDK, or bumped a plugin version.
- You are hand-writing YAML or using dynamic/token-based construction and mistyped the token.
- The resource works for a teammate on a different provider version.
Common Root Causes
1. Wrong casing or a typo in the token
Tokens are case-sensitive. aws:s3/bucketv2:BucketV2 (lowercase v) is not the same token as aws:s3/bucketV2:BucketV2. A single wrong character makes the token unknown.
2. Provider version too old to define the resource
The resource was added in a newer provider release than the plugin you have installed. For example BucketV2 requires a recent aws provider; an old plugin has never heard of it.
pulumi plugin ls
3. Resource renamed or removed across a major version
A provider major upgrade renamed or dropped a token. Code written against v5 may reference a token that v6 restructured, or vice versa.
4. SDK and plugin version drift
Your language SDK (npm/pip/go module) and the installed resource plugin are out of sync, so the SDK emits a token the installed plugin does not implement.
5. Wrong package name entirely (classic vs native / community provider)
Using a token from a different package — for example an azure-native token while only the classic azure plugin is installed, or a community provider that was never installed.
How to Diagnose
Confirm exactly which providers and versions are installed:
pulumi plugin ls
Compare that to the SDK version your program depends on (for TypeScript/Node):
npm ls @pulumi/aws
For Python or Go, check requirements.txt / go.mod respectively. Then verify the correct token in the provider’s API docs, and double-check casing character by character. A preview will confirm whether fixing the token or the plugin resolves it:
pulumi preview
Fixes
Correct the resource token / constructor. Prefer the SDK’s typed constructor over hand-written tokens so the compiler catches mistakes. The correct S3 v2 bucket is aws.s3.BucketV2:
// Correct casing and type
const bucket = new aws.s3.BucketV2("web", {});
If you must reference the raw token (YAML or dynamic code), use the exact case from the docs — aws:s3/bucketV2:BucketV2.
Upgrade the provider plugin to a version that defines the token. Install the plugin version that includes the resource, then retry:
pulumi plugin install resource aws 6.42.0
pulumi up
Pin the provider version in your project so plugin and SDK match. For TypeScript, pin the SDK in package.json and reinstall:
"dependencies": {
"@pulumi/aws": "6.42.0"
}
npm install
For Python, pin it in requirements.txt (pulumi-aws==6.42.0) and pip install -r requirements.txt. You can also pin the plugin declaratively in Pulumi.yaml:
plugins:
providers:
- name: aws
version: 6.42.0
Install a missing community/native provider. If the token belongs to a package you never installed, add its plugin:
pulumi plugin install resource azure-native 2.50.0
Remove and reinstall a corrupted plugin. If versions look right but the token is still unknown, clear and reinstall the plugin:
pulumi plugin rm resource aws --all --yes
pulumi plugin install resource aws 6.42.0
What to Watch Out For
- Resource tokens are case-sensitive —
bucketV2andbucketv2are different tokens. - Keep the SDK and plugin versions aligned; drift between them is the most common cause after typos.
- Read provider release notes before major upgrades — tokens are occasionally renamed or removed (e.g. classic
BucketvsBucketV2). - Use the strongly typed SDK constructors instead of raw tokens wherever possible so your compiler/linter flags unknown types before
pulumi up. - Pin provider versions in
Pulumi.yaml,package.json, orrequirements.txtso CI installs the same plugin that defines the tokens your code uses.
Related Guides
- Pulumi Error: ‘could not load plugin’ — Troubleshooting Guide
- Pulumi Error: ‘failed to register new resource’ — Troubleshooting Guide
- Pulumi Error: ‘Duplicate resource URN’ — Troubleshooting Guide
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.