EC2 Auto Scaling launch failures and Spot interruptions

Look up why an Auto Scaling group failed to launch instances (verbatim activity messages — deleted security group or key pair, unsupported type in an AZ, capacity, Spot price, KMS for encrypted volumes, quotas) and how Spot interruptions are signalled (two-minute notice via EventBridge and instance metadata) and handled.

markdownreferencev4615P-QB6Bstage: operatetrust: officialservice: ec2interface: anyAuto Scaling launch faileddescribe-scaling-activitiesThe security group does not exist Launching EC2 instance failedkey pair does not existrequested configuration is currently not supportedinstance type not supported in Availability Zoneinsufficient capacityno Spot capacity availableClient.InternalError Client error on launchSpot interruption noticeEC2 Spot Instance Interruption Warningspot/instance-action

Created 18 Oct 2026 · Modified 23 Oct 2026 · 4 versions

An Auto Scaling group reports launch failures as scaling-activity status messages, not API errors. Read them first:

aws autoscaling describe-scaling-activities --auto-scaling-group-name <asg> --max-items 10 \
  --query 'Activities[].[StatusCode,StatusMessage]'

Most configuration fixes mean a new launch template version, then update-auto-scaling-group to use it.

Launch failure messages

Message (as shown in activities)FixCheck
The requested configuration is currently not supported.Check the AMI architecture against the instance type (Arm AMIs for Graviton), and that the type is offered in the Region and AZsThe two describe-* architecture calls in reference/ec2/errors.md (InvalidParameterValue row)
The security group <name> does not exist. Launching EC2 instance failed.The group was deleted. Point the template at an existing groupaws ec2 describe-security-groups --group-ids <sg>
The key pair <name> does not exist. Launching EC2 instance failed.The key pair was deleted. Pick or create one, or drop the key and use Session Manageraws ec2 describe-key-pairs --key-names <name>
Your requested instance type (<type>) is not supported in your requested Availability Zone (<az>)…aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=instance-type,Values=<type>, then remove the unsupported subnets or change the typeThe describe-instance-type-offerings call in the Fix cell
We currently do not have sufficient <type> capacity in the Availability Zone you requested… Launching EC2 instance failed.Wait, add AZs, or diversify instance types (mixed instances policy)Other AZs and types in the same activity history succeed
There is no Spot capacity available that matches your request. Launching EC2 instance failed.Same: more AZs and types, or On-Demand fallbackSame as the row above
Your Spot request price of … is lower than the minimum required Spot request fulfillment price of …Raise the maximum price (up to the On-Demand price) or remove itaws ec2 describe-spot-price-history --instance-types <t> --product-descriptions Linux/UNIX --max-items 5
Client.InternalError: Client error on launch.The Auto Scaling service-linked role can't use the customer managed KMS key for encrypted EBS volumes. Grant it in the key policy, or a cross-account grant (reference/kms/key-policies-and-errors.md)aws kms get-key-policy --key-id <k> --policy-name default: look for AWSServiceRoleForAutoScaling
Invalid device name … / Value (<name>) for parameter virtualName is invalid… / EBS block device mappings not supported for instance-store AMIs.Fix the block device mappings in the templateThe template's BlockDeviceMappings vs the AMI's (describe-images → BlockDeviceMappings)
Placement groups may not be used with instances of type '<type>'…Use a supported type or another placement groupaws ec2 describe-instance-types --instance-types <t> --query 'InstanceTypes[0].PlacementGroupInfo'
The requested reservation does not have sufficient compatible and available capacity… / Your Capacity Block reservation <id> is not active yet…Capacity Reservation or Capacity Block limits. Enlarge the reservation, or schedule scaling for while it's activeOther AZs and types in the same activity history succeed
<n> instance(s) are already running. Launching EC2 instance failed.The Region instance or vCPU quota (VcpuLimitExceeded in the EC2 API). Request an increase or a smaller groupaws service-quotas list-service-quotas --service-code ec2 vs the running vCPUs

Launch-template permission errors (for example a missing iam:PassRole for the instance profile) appear as authorization failures. Decode them as in reference/ec2/errors.md (the exact activity text was UNVERIFIED on the fetched page).

Spot interruptions

  • EC2 sends an interruption notice two minutes before it stops or terminates a Spot Instance. There is no two-minute warning for hibernate, which starts immediately. Notices are best effort.
  • EventBridge: source aws.ec2, detail-type EC2 Spot Instance Interruption Warning, with detail.instance-id and detail.instance-action (terminate, stop or hibernate).
  • Instance metadata (IMDSv2): GET /latest/meta-data/spot/instance-action returns {"action":"stop","time":"…Z"}, or 404 when nothing is scheduled. Poll every 5 seconds. Prefer it over the older spot/termination-time.
TOKEN=$(curl -sX PUT http://169.254.169.254/latest/api/token -H "X-aws-ec2-metadata-token-ttl-seconds: 60")
curl -s -o /dev/null -w '%{http_code}' -H "X-aws-ec2-metadata-token: $TOKEN" \
  http://169.254.169.254/latest/meta-data/spot/instance-action   # 404 = no interruption

Handle it by draining work: deregister from the target group, checkpoint, and stop taking jobs. The two minutes cover connection draining only if the ALB's deregistration delay is shorter.

Rebalance recommendations (an earlier warning) weren't on the fetched page.

When none of these fits

Read the Auto Scaling group's activity history (aws autoscaling describe-scaling-activities --auto-scaling-group-name <asg>). Its StatusMessage carries the underlying EC2 error, which you can then look up in reference/ec2/errors.md. Next, try the same launch template with aws ec2 run-instances --dry-run to separate permission and parameter errors from capacity (UNVERIFIED that dry-run reproduces every case).

Read this document as markdown — the same bytes an agent receives.