kubernetes/kops · error
error removing role %q from IAM instance profile %q: %v
Error message
error removing role %q from IAM instance profile %q: %v
What it means
Fires in DeleteIAMInstanceProfile when iam.RemoveRoleFromInstanceProfile fails while stripping roles from the instance profile prior to deletion — permissions, throttling, or a concurrently modified profile.
Source
Thrown at pkg/resources/aws/aws.go:2050
func DeleteIAMInstanceProfile(cloud fi.Cloud, r *resources.Resource) error {
ctx := context.TODO()
c := cloud.(awsup.AWSCloud)
profile := r.Obj.(iamtypes.InstanceProfile)
name := aws.ToString(profile.InstanceProfileName)
// Remove roles
{
for _, role := range profile.Roles {
klog.V(2).Infof("Removing role %q from IAM instance profile %q", aws.ToString(role.RoleName), name)
request := &iam.RemoveRoleFromInstanceProfileInput{
InstanceProfileName: profile.InstanceProfileName,
RoleName: role.RoleName,
}
_, err := c.IAM().RemoveRoleFromInstanceProfile(ctx, request)
if err != nil {
return fmt.Errorf("error removing role %q from IAM instance profile %q: %v", aws.ToString(role.RoleName), name, err)
}
}
}
// Delete the instance profile
{
klog.V(2).Infof("Deleting IAM instance profile %q", name)
request := &iam.DeleteInstanceProfileInput{
InstanceProfileName: profile.InstanceProfileName,
}
_, err := c.IAM().DeleteInstanceProfile(ctx, request)
if err != nil {
return fmt.Errorf("error deleting IAM instance profile %q: %v", name, err)
}
}
return nil
}View on GitHub (pinned to 4c8573c808)
Solutions
- Check iam:RemoveRoleFromInstanceProfile permission
- Retry after transient errors; the profile may have been modified concurrently
- Ensure no EC2 instances are actively using the profile
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at pkg/resources/aws/aws.go:2050 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/6a6d6a54f8e53dcf.
Report an issue: GitHub.