{"record":{"id":"079fc764e73eed2c","repo":"kubernetes/kops","slug":"error-listing-internetgateway-v","errorCode":null,"errorMessage":"error listing InternetGateway: %v","messagePattern":"error listing InternetGateway: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/resources/aws/aws.go","lineNumber":1112,"sourceCode":"\t\tresourceTracker.Blocks = blocks\n\n\t\tresourceTrackers = append(resourceTrackers, resourceTracker)\n\t}\n\n\treturn resourceTrackers, nil\n}\n\nfunc DescribeInternetGateways(cloud fi.Cloud) ([]ec2types.InternetGateway, error) {\n\tctx := context.TODO()\n\tc := cloud.(awsup.AWSCloud)\n\n\tklog.V(2).Infof(\"Listing EC2 InternetGateways\")\n\trequest := &ec2.DescribeInternetGatewaysInput{\n\t\tFilters: BuildEC2Filters(cloud),\n\t}\n\tresponse, err := c.EC2().DescribeInternetGateways(ctx, request)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error listing InternetGateway: %v\", err)\n\t}\n\n\tvar gateways []ec2types.InternetGateway\n\tgateways = append(gateways, response.InternetGateways...)\n\n\treturn gateways, nil\n}\n\n// DescribeInternetGatewaysIgnoreTags returns all ec2.InternetGateways, ignoring tags\n// (gateways were not always tagged in kube-up)\nfunc DescribeInternetGatewaysIgnoreTags(cloud fi.Cloud) ([]ec2types.InternetGateway, error) {\n\tctx := context.TODO()\n\tc := cloud.(awsup.AWSCloud)\n\n\tklog.V(2).Infof(\"Listing all Internet Gateways\")\n\n\trequest := &ec2.DescribeInternetGatewaysInput{}\n\tresponse, err := c.EC2().DescribeInternetGateways(ctx, request)","sourceCodeStart":1094,"sourceCodeEnd":1130,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/resources/aws/aws.go#L1094-L1130","documentation":"kOps wraps failures from the EC2 DescribeInternetGateways API used to list IGWs tagged for the cluster. Any API-level failure is wrapped and aborts discovery of leftover internet gateways during cluster deletion.","triggerScenarios":"EC2 DescribeInternetGateways with BuildEC2Filters tag filters fails: expired credentials, throttling, network outage, or invalid region/endpoint.","commonSituations":"Long-running deletes crossing session/STS token expiry; account throttling under concurrent kOps runs; misconfigured region; corporate proxy blocking EC2 API.","solutions":["Verify access with `aws ec2 describe-internet-gateways --region <region>` under the same identity","Refresh credentials (SSO login / new STS tokens) and re-run the delete","Back off and retry on throttling; the describe is read-only and safe to repeat","Check network/proxy reachability to the regional EC2 endpoint"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// preflight: auth + EC2 reachability before listing\nif _, err := sts.New(sess).GetCallerIdentity(&sts.GetCallerIdentityInput{}); err != nil {\n\treturn fmt.Errorf(\"invalid AWS credentials: %w\", err)\n}\nif _, err := ec2cli.DescribeInternetGateways(&ec2.DescribeInternetGatewaysInput{MaxResults: aws.Int64(5)}); err != nil {\n\treturn fmt.Errorf(\"EC2 unreachable in %s: %w\", region, err)\n}","typeGuard":null,"tryCatchPattern":"var gateways []ec2types.InternetGateway\nerr := backoff.Retry(func() error {\n\tvar e error\n\tgateways, e = aws.DescribeInternetGateways(cloud)\n\tif e != nil && (strings.Contains(e.Error(), \"Throttling\") || strings.Contains(e.Error(), \"RequestLimitExceeded\")) {\n\t\treturn e // retryable\n\t}\n\treturn backoff.Permanent(e)\n}, backoff.WithMaxRetries(backoff.NewExponentialBackOff(), 5))","preventionTips":["Refresh credentials (SSO/STS) before long delete operations","Avoid concurrent kOps runs in one account to prevent throttling","Verify network/proxy access to ec2.<region>.amazonaws.com","Confirm cluster region in config before operating on tagged resources"],"tags":["aws","ec2","internet-gateway","api-error"],"backgroundTag":"aws-api-request-failed","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}