How can I get my AWS CloudFormation stack to update if it's stuck in the UPDATE_ROLLBACK_FAILED state?
Last updated: 2020-04-08
My AWS CloudFormation stack is stuck in the UPDATE_ROLLBACK_FAILED state. How can I update my stack?
If your stack is stuck in the UPDATE_ROLLBACK_FAILED state after a failed update, then the only actions that you can perform on the stack are the ContinueUpdateRollback or DeleteStack operations. This is because AWS CloudFormation requires further input from you to acknowledge that the stack is out of sync with the template that the stack is attempting to roll back to. To retry the rollback and resolve the error, you can use ContinueUpdateRollback.
Tip: To resolve the error, you might need to raise limits, change permissions, or modify other settings. For information on common errors that cause update rollback failures, see Update Rollback Failed.
In some cases, retrying the rollback doesn't resolve the error. In these cases, you must skip resources, and also acknowledge that these resources no longer reflect the desired state in the AWS CloudFormation template. To skip the resources that caused the rollback failures, complete the following steps in the Resolution section.
You can roll the stack back to a working state with either the AWS CloudFormation console or AWS Command Line Interface (AWS CLI).
AWS CloudFormation console
1. Open the AWS CloudFormation console.
2. From the navigation pane, choose Stacks.
3. From the Stack name column, select the stack that's stuck in UPDATE_ROLLBACK_FAILED status.
4. If you don't want to skip resources, choose Actions, and then choose Continue update rollback.
If you want to skip resources, choose Advanced troubleshooting in the Continue update rollback for yourStackName dialog box. Then, in the Resources to skip - optional section, select the resources that you want to skip. Finally, choose Continue update rollback.
In the AWS CLI, run the continue-update-rollback command. See the following example:
$ aws cloudformation continue-update-rollback --stack-name awsstackname123 --resources-to-skip awsfaultyresource123
Note: Replace awsstackname123 with the name of your stack. Replace awsfaultyresource123 with the logical IDs of your resources.
Important: AWS CloudFormation sets the status of specified resources to UPDATE_COMPLETE. Then, AWS CloudFormation continues to roll back the stack. After the rollback is complete, the state of the skipped resources is inconsistent with the state of the resources in the stack template. Before performing another stack update, update the stack or resources to be consistent with each other. If you don't do this, subsequent stack updates can fail, and the stack becomes unrecoverable.
If you have nested stacks that need to be rolled back to a working state, follow the instructions at Using ResourcesToSkip to recover a nested stacks hierarchy.