Immediate Fix
To resolve an EC2 Auto Scaling launch failure, you must first identify the specific error code returned by the AWS service. This information is found in the “Activity History” of your Auto Scaling Group (ASG).
Run the following AWS CLI command to retrieve the most recent scaling activity and identify the failure reason:
aws autoscaling describe-scaling-activities \
--auto-scaling-group-name your-asg-name \
--query 'ScalingActivities[0].StatusMessage'
Once you have the error message, refer to the table below for the immediate resolution step:
| Error Code | Immediate Action |
|---|---|
| InstanceLimitExceeded | Request a service quota increase or terminate unused instances in the region. |
| InvalidParameterValue | Verify the AMI ID exists and is accessible in the specific AWS region. |
| LaunchConfigurationNameNotFound | Update the ASG to point to an existing Launch Template or Configuration. |
| SubnetNotFound | Verify the VPC subnets assigned to the ASG still exist and are active. |
Technical Explanation
EC2 Auto Scaling launch failures occur when the Auto Scaling engine attempts to call the RunInstances API, but the request is rejected. This handshake failure usually stems from misconfigurations in the Launch Template or external resource constraints.
Common technical triggers include expired Security Group IDs, IAM roles lacking the “ec2.amazonaws.com” trust relationship, or trying to launch an instance type that is currently unavailable in a specific Availability Zone (AZ).
When the ASG fails to launch an instance, it enters a loop. It will continue attempting to launch instances at regular intervals, which can lead to “Scaling activity failed” notifications being sent to your SNS topics repeatedly.

Alternative Methods
1. Switch to Launch Templates
If you are still using legacy Launch Configurations, migrate to Launch Templates. Templates provide better versioning control and support for newer EC2 features like T3 Unlimited and Mixed Instances Policies, which can bypass capacity issues.
2. Check Service Quotas
Navigate to the “Service Quotas” dashboard in the AWS Console. Ensure your “Running On-Demand Standard instances” limit hasn’t been reached. This is a common bottleneck for rapidly growing environments.
3. Validate Networking and IAM
Ensure the IAM Instance Profile attached to the launch template has the necessary permissions. Additionally, confirm that the selected subnets have available IP addresses. A subnet with zero available IPs will cause the ASG to fail silently until you check the Activity History.
# Check available IP addresses in a subnet
aws ec2 describe-subnets --subnet-ids subnet-xxxxxxxx --query 'Subnets[0].AvailableIpAddressCount'