Terraform state reflects the most up to date reference of the infrastructure.

Sometimes you may need to remove a resource from the Terraform state manually. This is helpful if a resource has been deleted or modified manually and the resource definition has been removed in your Terraform code. This way you can re-run your Terraform plan and apply without deleting the remote infra resource that you removed from the state.

Step 1 – Find the resource you want to delete

Running this command will place all resources managed by Terraform in a list form, all resources separated by line breaks.

terraform state list

Step 2 – Remove the resource in question

Once you know the resource you would like to remove from the state, pass it’s Terraform reference name to the rm command below:

terraform state rm <resource_name>

Example:

terraform state rm module.kms_key.aws_kms_key.default[0]