DEV Community

Anattapol Limopasit
Anattapol Limopasit

Posted on

1 1

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.

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay