SAM Doctor

ERROR REFERENCE

No changes to deploy (empty change set)

The stack already matches the template, so CloudFormation produced an empty change set — and the deploy command treated that as an error. In a pipeline this is usually a configuration choice, not a real failure.

WHAT IT MEANS

What this error means

Three phrasings of the same outcome, depending on the tool and code path:

Nothing is broken in AWS: the deployed stack and the submitted template are identical. The command exits non-zero because, by default, it assumes you expected a change. That default is the whole problem in CI, where re-runs and no-op merges are routine.

FIX

How to fix it

  1. For automated pipelines: make an empty change set a success instead of a failure:
    sam deploy --no-fail-on-empty-changeset
    # or persist it:
    # samconfig.toml -> fail_on_empty_changeset = false
    aws cloudformation deploy supports the same --no-fail-on-empty-changeset flag.
  2. If this run was supposed to change the stack, the empty change set is telling you the artifacts never changed: confirm the build step actually ran and produced updated artifacts before the deploy step consumed them.
  3. Confirm the target — the intended stack name, region, and configuration environment. Deploying a real change to the wrong stack also looks like "no changes" on the one you meant.

AUTOMATE THE TRIAGE

Diagnose this automatically

SAM Doctor recognizes all three phrasings (high confidence) and separates this non-failure from real change-set errors in the same log. Runs locally; no AWS access, no log upload.

python -m pip install sam-doctor
sam-doctor diagnose deployment.log --format markdown

RELATED