DEV Community

Anattapol Limopasit
Anattapol Limopasit

Posted on

I cannot destroy resources from my terraform

I am learning the well-known infrastructure as code from Hashicorp. You know it is terraform.
I applied the IaC now I want to destroy it but I couldn't. It said the resources not found.

➜ 02_01_variables git:(master) ✗ tf apply -destroy aws_vpc.vpc1: Refreshing state... [id=vpc-00ff6b23017c33b36] aws_internet_gateway.gateway1: Refreshing state... [id=igw-048ff50b04984c8c9] aws_subnet.subnet1: Refreshing state... [id=subnet-092c7562b5217f94b] aws_security_group.sg-nodejs-instance: Refreshing state... [id=sg-016d21995017adf82] aws_route_table.route_table1: Refreshing state... [id=rtb-05e51e942674c90b0] aws_instance.nodejs1: Refreshing state... [id=i-089b073c3bbbfeaa1] aws_route_table_association.route-subnet1: Refreshing state... [id=rtbassoc-0f0ae78f78ee34ae2] ^C Interrupt received. Please wait for Terraform to exit or data loss may occur. Gracefully shutting down... ^C Two interrupts received. Exiting immediately. Note that data loss may have occurred. ╷ │ Error: operation canceled │ │ ╵ ╷ │ Error: Plugin did not respond │ │ with aws_route_table_association.route-subnet1, │ on main.tf line 113, in resource "aws_route_table_association" "route-subnet1": │ 113: resource "aws_route_table_association" "route-subnet1" { │ │ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ReadResource call. The plugin logs may contain more details. 
Enter fullscreen mode Exit fullscreen mode

It looked like hang unexpectedly to me. I got nothing from the CLI. Oh, OK I did enable the log here.

export TF_LOG=TRACE export TF_LOG_PATH=tf.log 
Enter fullscreen mode Exit fullscreen mode

OK, let me check the log quickly.

HTTP/1.1 400 Bad Request ... 2021-06-06T19:57:32.393+0700 [INFO] provider.terraform-provider-aws_v3.44.0_x5: 2021/06/06 19:57:32 [DEBUG] [aws-sdk-go] <?xml version="1.0" encoding="UTF-8"?> <Response><Errors><Error><Code>InvalidRouteTableID.NotFound</Code><Message>The routeTable ID 'rtb-05e51e942674c90b0' does not exist</Message></Error></Errors><RequestID>5b99646a-0e04-4f87-85aa-708e4a537852</RequestID></Response>: timestamp=2021-06-06T19:57:32.393+0700 
Enter fullscreen mode Exit fullscreen mode

InvalidRouteTableID.NotFound

I then checked my resource.

➜ 02_01_variables git:(master) ✗ tf state list data.aws_ami.aws-linux data.aws_availability_zones.available aws_instance.nodejs1 aws_internet_gateway.gateway1 aws_route_table.route_table1 aws_route_table_association.route-subnet1 aws_security_group.sg-nodejs-instance aws_subnet.subnet1 aws_vpc.vpc1 ➜ 02_01_variables git:(master) ✗ tf state show -state=terraform.tfstate aws_route_table.route_table1 # aws_route_table.route_table1: resource "aws_route_table" "route_table1" { arn = "arn:aws:ec2:ap-southeast-1:624836204311:route-table/rtb-05e51e942674c90b0" id = "rtb-05e51e942674c90b0" owner_id = "624836204311" propagating_vgws = [] route = [ { carrier_gateway_id = "" cidr_block = "0.0.0.0/0" destination_prefix_list_id = "" egress_only_gateway_id = "" gateway_id = "igw-048ff50b04984c8c9" instance_id = "" ipv6_cidr_block = "" local_gateway_id = "" nat_gateway_id = "" network_interface_id = "" transit_gateway_id = "" vpc_endpoint_id = "" vpc_peering_connection_id = "" }, ] tags = {} tags_all = {} vpc_id = "vpc-00ff6b23017c33b36" } 
Enter fullscreen mode Exit fullscreen mode

I checked it, and found it.

aws ec2 describe-route-tables --route-table-ids rtb-05e51e942674c90b0 
Enter fullscreen mode Exit fullscreen mode

Then I went away with my dog, dog walking. That helped.
I did the variable default to us-east-2 but I did apply them with ap-southeast-1. Let me try it.

variable "region" { default = "us-east-2" } 
Enter fullscreen mode Exit fullscreen mode

In the log, us-east-2 everywhere

DEBUG: Request ec2/DescribeAccountAttributes Details: ---[ REQUEST POST-SIGN ]----------------------------- POST / HTTP/1.1 Host: ec2.us-east-2.amazonaws.com ... 2021-06-06T19:57:16.084+0700 [WARN] Provider "provider[\"registry.terraform.io/hashicorp/aws\"]" produced an unexpected new value for data.aws_availability_zones.available. - .zone_ids[0]: was cty.StringVal("apse1-az1"), but now cty.StringVal("use2-az1") - .zone_ids[1]: was cty.StringVal("apse1-az2"), but now cty.StringVal("use2-az2") - .zone_ids[2]: was cty.StringVal("apse1-az3"), but now cty.StringVal("use2-az3") - .group_names: planned set element cty.StringVal("ap-southeast-1") does not correlate with any element in actual - .id: was cty.StringVal("ap-southeast-1"), but now cty.StringVal("us-east-2") - .names[0]: was cty.StringVal("ap-southeast-1a"), but now cty.StringVal("us-east-2a") - .names[1]: was cty.StringVal("ap-southeast-1b"), but now cty.StringVal("us-east-2b") - .names[2]: was cty.StringVal("ap-southeast-1c"), but now cty.StringVal("us-east-2c") ... 
Enter fullscreen mode Exit fullscreen mode

One that obviously seen is that [WARN] Provider "provider[\"registry.terraform.io/hashicorp/aws\"]" produced an unexpected new value for data

and this one.

2021-06-06T19:57:09.758+0700 [DEBUG] ReferenceTransformer: "provider[\"registry.terraform.io/hashicorp/aws\"]" references: [var.region] 
Enter fullscreen mode Exit fullscreen mode

So I have had to supply the -var region=ap-southeast-1 to the cli. tf apply -destroy -var region=ap-southeast-1 and all gone.

Top comments (0)