Skip to guide content

EC2 VcpuLimitExceeded: How to Fix vCPU Quota Errors

Updated October 15, 2026

Short answer

VcpuLimitExceeded means the vCPUs of your running On-Demand Instances in that Region, plus the new request, would exceed the quota for that instance family. Check quotas such as Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances (quota code L-1216C47A) for that Region in the Service Quotas console and request an increase to the total vCPUs you need.

What the error means

EC2 sets On-Demand Instance quotas per account and per Region, measured not in instances but in the total vCPUs of running instances. If launching or starting an instance would push the total over the quota, the request fails with VcpuLimitExceeded and a message like this:

Typical error message
You have requested more vCPU capacity than your current vCPU limit of 0 allows for the instance bucket that the specified instance type belongs to.
  • Only running instances count; instances that are pending, stopping, stopped or hibernated don't.
  • Capacity Reservations count against the On-Demand quota even when unused.
  • Quotas are per Region; raising one in us-east-1 doesn't change any other Region.

Quotas are grouped by instance family

Each quota covers a group of instance families, and vCPUs are added up across every generation and size in the group. The main quotas and the defaults listed in AWS documentation are:

  • Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances: L-1216C47A, covering common families such as t3, m7i and c7i, default 5 vCPUs.
  • Running On-Demand G and VT instances: L-DB2E81BA (GPU instances), default 0.
  • Running On-Demand P instances: L-417A185B, default 0.
  • DL, F, HPC, High Memory, Inf, Trn and X each have their own quota, all defaulting to 0.

For example, a Standard quota of 5 lets you run at most two 2-vCPU instances at once, and a family with a quota of 0 can't run any On-Demand Instances until it's raised. EC2 raises quotas automatically as your usage grows, but new accounts usually start near the defaults. The Applied quota value in Service Quotas is what counts.

Check your current quota

  1. Open the Amazon EC2 quotas page in the Service Quotas console.
  2. Switch to the Region where the error occurred in the navigation bar.
  3. Type On-Demand in the filter field.
  4. Read the Applied quota value column: that's the maximum number of vCPUs for each family.

Or query it with the AWS CLI, replacing --region with your Region. Value in the response is the current quota:

aws service-quotas get-service-quota --service-code ec2 --quota-code L-1216C47A --region us-east-1

Request a quota increase

First work out the total you need: the vCPUs of running instances in that family and Region, plus those of the instances you plan to launch.

  1. In the Service Quotas console, switch to the target Region and open the quotas for Amazon Elastic Compute Cloud (Amazon EC2).
  2. Select the quota and choose Request increase at account level (shown as Request quota increase on some pages).
  3. Enter the new total vCPU value, which must be higher than the current one, and choose Request.
  4. Track it under Request history or Dashboard. Requests start as Pending; once they move to Quota requested, a Support case number appears.
Request 32 vCPUs with the CLI
aws service-quotas request-service-quota-increase --service-code ec2 --quota-code L-1216C47A --desired-value 32 --region us-east-1

Small increases are usually approved automatically. Larger requests go to AWS Support, which can approve, partially approve or deny them, and they don't receive priority support. Each Region needs its own request, so plan ahead.

Workarounds while you wait

  • Stop or terminate instances you don't need; stopped instances don't count toward the On-Demand quota.
  • Use a size with fewer vCPUs, or place some instances in another Region with spare quota.
  • Look for unused Capacity Reservations that are holding quota.
  • Move interruptible work to Spot Instances, provided the Spot quota allows it.

Checking quotas across Regions in CloudPilot

CloudPilot's Quotas page reads the Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances quota (L-1216C47A) for one Region or all of them, so you can see where a batch deployment will fit. It shows the quota limit, not remaining headroom, and doesn't cover Spot, GPU or other families. Results are cached for 10 minutes; use Refresh from AWS after an increase.

FAQ

Do stopped instances use vCPU quota?

No. On-Demand quotas count only running instances; pending, stopping, stopped and hibernated instances don't count.

Is the vCPU quota shared across my whole account?

No. Both On-Demand and Spot vCPU quotas are set per Region, so check and request increases in each Region separately.

My quota is high enough. Why does the launch still fail?

If the error is InsufficientInstanceCapacity, AWS is short on capacity right now, which is unrelated to quotas. Retry later or try another Availability Zone or instance type.

How long does a quota increase take?

Small increases are usually approved automatically; larger ones need AWS Support review and take varying time. Once approved, the Applied quota value updates to the new number.

Sources (AWS documentation)