AWS `VcpuLimitExceeded`: What It Means and How to Fix It

VcpuLimitExceeded is an account quota, not a capacity shortage — and this one you can raise. It comes from EC2, and the message reads:

You have requested more vCPU capacity than your current vCPU limit allows for the instance bucket.

If you are here mid-incident, skip to how to tell which cause you have — the command there narrows it down faster than reading the list.

Quick reference

Error VcpuLimitExceeded
Service EC2
Message You have requested more vCPU capacity than your current vCPU limit allows for the instance bucket.
Most common cause The running total plus the new launch exceeds the bucket quota

What it actually means

EC2 quotas are counted in vCPUs, not instance counts, and they are grouped into buckets by instance family. The main buckets are:

Bucket Families
Standard A, C, D, H, I, M, R, T, Z
On-Demand G and VT G, VT
On-Demand P P
On-Demand Inf Inf
On-Demand High Memory u-*
On-Demand F F
On-Demand X X

Spot instances have a separate, parallel set of quotas. A new account typically starts with a Standard quota in the low hundreds of vCPUs, which one large instance can consume a meaningful fraction of.

Because the quota counts vCPUs, launching a single c6i.32xlarge (128 vCPUs) can fail on an account that comfortably runs sixty t3.medium instances.

Why it happens

Ranked by how often each one turns out to be the answer.

# Cause Fix
1 The running total plus the new launch exceeds the bucket quota Raise the quota, or terminate something. The quota counts running instances, so stopped instances do not consume it.
2 A new account with default quotas Defaults are low and are per-region. An account that works in us-east-1 starts fresh in eu-west-1.
3 An Auto Scaling group scaling into the ceiling The ASG reports the failure in its activity history rather than anywhere obvious. Check there when instances silently fail to appear.
4 The wrong bucket Requesting a raise for Standard does nothing for a GPU launch. Match the bucket to the family.

How to tell which one you have

# Current Standard on-demand vCPU quota
aws service-quotas get-service-quota \
  --service-code ec2 --quota-code L-1216C47A

# How many vCPUs are actually running right now?
aws ec2 describe-instances \
  --filters Name=instance-state-name,Values=running \
  --query 'Reservations[].Instances[].[InstanceType,CpuOptions.CoreCount,CpuOptions.ThreadsPerCore]' \
  --output text | awk '{s += $2 * $3} END {print s " vCPUs running"}'

# Why did the ASG fail?
aws autoscaling describe-scaling-activities \
  --auto-scaling-group-name my-asg --max-items 5 \
  --query 'Activities[].[StatusCode,StatusMessage]' --output text

Preventing it

Request quota increases before you need them, in every region you operate in. Approval is usually quick but is not instant, and discovering the limit during an incident-driven scale-out is the worst time.

Put a CloudWatch alarm on the quota utilisation metric that Service Quotas publishes, so you are warned at 80% rather than at 100%.


Quota codes, limits and behaviour on this page were last checked against AWS documentation on 2026-08-22. AWS changes these; if something here does not match what you are seeing, trust the console and tell us.