kubernetes/kops · error

attempt to build AWS clients for region %q, already built fo

Error message

attempt to build AWS clients for region %q, already built for %q

What it means

Error "attempt to build AWS clients for region %q, already built for %q" thrown in kubernetes/kops.

Source

Thrown at upup/pkg/fi/nodeup/awsup/aws_cloud.go:77

// why they are package state rather than fields on Cloud.
var clients struct {
	mutex sync.Mutex

	region      string
	ec2         *ec2.Client
	autoscaling *autoscaling.Client

	machineTypes map[ec2types.InstanceType]*MachineTypeInfo
}

// NewCloud constructs the AWS clients used by nodeup.
func NewCloud(ctx context.Context, region string) (*Cloud, error) {
	clients.mutex.Lock()
	defer clients.mutex.Unlock()

	if clients.ec2 != nil {
		if clients.region != region {
			return nil, fmt.Errorf("attempt to build AWS clients for region %q, already built for %q", region, clients.region)
		}
		return &Cloud{region: region}, nil
	}

	cfg, err := loadAWSConfig(ctx, region)
	if err != nil {
		return nil, fmt.Errorf("failed to load default aws config: %w", err)
	}

	clients.region = region
	clients.ec2 = ec2.NewFromConfig(cfg)
	clients.autoscaling = autoscaling.NewFromConfig(cfg)

	return &Cloud{region: region}, nil
}

// Region returns the AWS region we are running in.
func (c *Cloud) Region() string {

View on GitHub (pinned to 4c8573c808)

When it happens

Trigger: Thrown at upup/pkg/fi/nodeup/awsup/aws_cloud.go:77 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/1728c57724d343ba. Report an issue: GitHub.