kubernetes/kops · error

listing nat gateways: %w

Error message

listing nat gateways: %w

What it means

Listing NAT gateways via the ARM pager failed with an error other than ResourceGroupNotFound (already handled as empty). Fires on authorization, throttling, or transient ARM errors.

Source

Thrown at upup/pkg/fi/cloudup/azure/natgateway.go:68

	}
	return &resp.NatGateway, err
}

func (c *NatGatewaysClientImpl) List(ctx context.Context, resourceGroupName string) ([]*network.NatGateway, error) {
	if resourceGroupName == "" {
		return nil, nil
	}

	var l []*network.NatGateway
	pager := c.c.NewListPager(resourceGroupName, nil)
	for pager.More() {
		resp, err := pager.NextPage(ctx)
		if err != nil {
			var respErr *azcore.ResponseError
			if errors.As(err, &respErr) && respErr.ErrorCode == "ResourceGroupNotFound" {
				return nil, nil
			}
			return nil, fmt.Errorf("listing nat gateways: %w", err)
		}
		l = append(l, resp.Value...)
	}
	return l, nil
}

func (c *NatGatewaysClientImpl) Delete(ctx context.Context, resourceGroupName, natGatewayName string) error {
	future, err := c.c.BeginDelete(ctx, resourceGroupName, natGatewayName, nil)
	if err != nil {
		return fmt.Errorf("deleting nat gateway: %w", err)
	}
	if _, err := future.PollUntilDone(ctx, nil); err != nil {
		return fmt.Errorf("waiting for nat gateway deletion completion: %w", err)
	}
	return nil
}

func newNatGatewaysClientImpl(subscriptionID string, cred *azidentity.DefaultAzureCredential) (*NatGatewaysClientImpl, error) {

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Verify list permissions on the resource group
  2. Retry after transient ARM errors
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/azure/natgateway.go:68 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/2cbafeb4a5f701fa. Report an issue: GitHub.