72
votes

When I deploy using cloudformation aws cloudformation deploy --region $region --stack-name ABC

Got error:

An error occurred (ValidationError) when calling the CreateChangeSet operation: Stack:arn:aws:cloudformation:stack/service/7e1d8c70-d60f-11e9-9728-0a4501e4ce4c is in ROLLBACK_COMPLETE state and can not be updated.

Please help me !

3
Some stack is in Rollback, and I think it has to be finished first.Lamanus
so I have to create maually stack first ? or I can update on another existed stack ?Thanh Nguyen Van
You can provide more information like what is the error because of which it got rolled back, It will help to community to better understand the problem and provide solution. You could get more information from the AWS consoleVinoth A

3 Answers

89
votes

This happens when stack creation fails. By default the stack will remain in place with a status of ROLLBACK_COMPLETE. This means it's successfully rolled back (deleted) all the resources which the stack had created. The only thing remaining is the empty stack itself. You cannot update this stack; you must manually delete it, after which you can attempt to deploy it again.

If you set "Rollback on failure" to disabled in the console (or set --on-failure to DO_NOTHING in the CLI command, if using create-stack), stack creation failure will instead result in a status of CREATE_FAILED. Any resources created before the point of failure won't have been rolled back.

If instead you were deploying updates to an existing (successfully created) stack, and the updates failed but were successfully rolled back, it will go back into its previous valid state (with a status of UPDATE_ROLLBACK_COMPLETE), allowing you to reattempt updates.


As @SteffenOpel points out, you can now specify that a stack should be deleted on failure by setting the --on-failure option (for create-stack only, not deploy) to DELETE in the CLI. This option is not yet available in the console at the time of writing (13/11/20).

36
votes

Run the following AWS CLI command to delete your stack:

aws cloudformation delete-stack --stack-name <<stack-name>>

It may take less than a minute to delete your stack, and then try re-deploying it.

0
votes

Only deleting stack using

aws cloudformation delete-stack --stack-name <<stack-name>>

won't help. If you are deploying a lambda function using IAM user then make sure that you have permissions for creating a lambda function, s3 bucket and cloudformation stack.