[GH-ISSUE #179] KeyError: 'aws_internet_gateway.igw' #106

Closed
opened 2026-05-06 12:37:32 +02:00 by BreizhHardware · 1 comment

Originally created by @khaledyasser2 on GitHub (Mar 25, 2026).
Original GitHub issue: https://github.com/patrickchugh/terravision/issues/179

Originally assigned to: @patrickchugh on GitHub.

Seems to constantly crash for me when trying to render internet gateways. All I added was:

resource "aws_internet_gateway" "igw" {
  vpc_id = aws_vpc.main.id
}
resource "aws_route_table" "public" {
  vpc_id = aws_vpc.main.id
}
resource "aws_route" "public_internet" {
  route_table_id         = aws_route_table.public.id
  destination_cidr_block = "0.0.0.0/0"
  gateway_id             = aws_internet_gateway.igw.id
}
resource "aws_route_table_association" "public_a" {
  subnet_id      = aws_subnet.public_a.id
  route_table_id = aws_route_table.public.id
}

To an already planned and successfully diagramed terraform configuration. Adding that a simple internet gateway to any of my configurations crashes them every time. Terraform plan passes, but I get this error in the end:

Processing variables..

Processing resources..
   aws_instance.app
   aws_internet_gateway.igw
   aws_route.public_internet
   aws_route_table.public
   aws_route_table_association.public_a
   aws_security_group.app_sg
   aws_subnet.public_a
   aws_vpc.main

Checking for additional links between 8 resources..
   aws_instance.app --> aws_security_group.app_sg
   aws_route.public_internet --> aws_internet_gateway.igw
   aws_route.public_internet --> aws_route_table.public
   aws_route_table_association.public_a --> aws_route_table.public
Unhandled error: <class 'KeyError'>, 'aws_internet_gateway.igw'
Traceback (most recent call last):
  File "/home/terravision/.local/bin/terravision", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 469, in main
    cli(
  File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1485, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1406, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1269, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 824, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 330, in draw
    tfdata = compile_tfdata(
             ^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 200, in compile_tfdata
    tfdata = _enrich_graph_data(tfdata, debug, already_processed)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 107, in _enrich_graph_data
    tfdata = graphmaker.consolidate_nodes(tfdata)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/terravision/.local/lib/python3.12/site-packages/modules/graphmaker.py", line 1361, in consolidate_nodes
    for index, connection in enumerate(tfdata["graphdict"][connected_resource]):
                                       ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
KeyError: 'aws_internet_gateway.igw'
Originally created by @khaledyasser2 on GitHub (Mar 25, 2026). Original GitHub issue: https://github.com/patrickchugh/terravision/issues/179 Originally assigned to: @patrickchugh on GitHub. Seems to constantly crash for me when trying to render internet gateways. All I added was: ``` resource "aws_internet_gateway" "igw" { vpc_id = aws_vpc.main.id } resource "aws_route_table" "public" { vpc_id = aws_vpc.main.id } resource "aws_route" "public_internet" { route_table_id = aws_route_table.public.id destination_cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.igw.id } resource "aws_route_table_association" "public_a" { subnet_id = aws_subnet.public_a.id route_table_id = aws_route_table.public.id } ``` To an already planned and successfully diagramed terraform configuration. Adding that a simple internet gateway to any of my configurations crashes them every time. Terraform plan passes, but I get this error in the end: ``` Processing variables.. Processing resources.. aws_instance.app aws_internet_gateway.igw aws_route.public_internet aws_route_table.public aws_route_table_association.public_a aws_security_group.app_sg aws_subnet.public_a aws_vpc.main Checking for additional links between 8 resources.. aws_instance.app --> aws_security_group.app_sg aws_route.public_internet --> aws_internet_gateway.igw aws_route.public_internet --> aws_route_table.public aws_route_table_association.public_a --> aws_route_table.public Unhandled error: <class 'KeyError'>, 'aws_internet_gateway.igw' Traceback (most recent call last): File "/home/terravision/.local/bin/terravision", line 8, in <module> sys.exit(main()) ^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 469, in main cli( File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1485, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1406, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1873, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 1269, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/click/core.py", line 824, in invoke return callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 330, in draw tfdata = compile_tfdata( ^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 200, in compile_tfdata tfdata = _enrich_graph_data(tfdata, debug, already_processed) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/terravision/terravision.py", line 107, in _enrich_graph_data tfdata = graphmaker.consolidate_nodes(tfdata) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/terravision/.local/lib/python3.12/site-packages/modules/graphmaker.py", line 1361, in consolidate_nodes for index, connection in enumerate(tfdata["graphdict"][connected_resource]): ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ KeyError: 'aws_internet_gateway.igw' ```
Author
Owner

@patrickchugh commented on GitHub (Mar 29, 2026):

@khaledyasser2 Thanks for reporting this. This occurs because you have coincidentally chosen a name of IGW for your internet gateway which is a reserved name in terravision. I have fixed this with the latest code now by adding a check for this. Can you try again with the latest version?

<!-- gh-comment-id:4149612353 --> @patrickchugh commented on GitHub (Mar 29, 2026): @khaledyasser2 Thanks for reporting this. This occurs because you have coincidentally chosen a name of IGW for your internet gateway which is a reserved name in terravision. I have fixed this with the latest code now by adding a check for this. Can you try again with the latest version?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/terravision#106
No description provided.