Migrate From v3
SST v4 upgrades the underlying Pulumi AWS provider from v6 to v7. This guide covers migrating your SST v3 apps to v4.
For the full list of upstream changes, refer to the Pulumi AWS v7 migration guide.
Breaking changes
No code changes are needed if you are only using SST components without transforms or direct @pulumi/aws usage. Otherwise, refer to the Pulumi AWS v7 migration guide for the full list of breaking changes.
The internal changes to SST components were minimal: mostly S3 resource renames (dropping the V2 suffix) and switching from tags to tagsAll. You can see the full list of changes in the upgrade PR.
Migration steps
When you update SST and the AWS provider version changes, sst deploy will be blocked until you migrate your state:
-
Update your config
If you have any breaking changes from above, update your
sst.config.tsaccordingly. -
Review changes
Run
sst diffto preview what will change. This is a one-way migration, so it’s worth reviewing first.npx sst diff -
Migrate state
Run
sst refreshto migrate your state.npx sst refreshRepeat for each stage.
npx sst refresh --stage productionIf the stage was deployed using
sst dev, use the--devflag.npx sst refresh --devIf you share resources across stages, run
sst refreshon the stage where the resource is created first — not the stage that references it via.get(). -
Deploy
Once refreshed, deploy as usual.
npx sst deploy
That’s it — once refreshed and deployed, your app is fully migrated to v4.