Home / OCI

OCITroubleshootingIntermediate

Sev1: OCI instance launches and scale-outs fail — service limits, compartment quotas and out-of-capacity

Autoscaling or recovery can't create instances with LimitExceeded, QuotaExceeded or Out of host capacity. Find which limit you hit, free or move capacity now, and request an increase.

Deepak Bhardwaj3 min read

Applies toOCI Compute, OKE node pools, instance pools, OCI Limits and Quotas, OCI CLI 3.x

Symptoms

  • Instance pool or OKE node pool scale-out fails; work request errors show LimitExceeded, QuotaExceeded or Out of host capacity.
  • A DR or recovery plan can't launch replacement instances.

1. Read the exact error

oci work-requests work-request list --compartment-id $COMP --limit 10 \
  --query 'data[].{id:id, op:"operation-type", status:status}' --output table
oci work-requests work-request-error list --work-request-id <wr-ocid> --query 'data[].message'

For OKE node pools:

oci ce work-request list --compartment-id $COMP --cluster-id $CLUSTER --limit 5
oci ce work-request-error list --compartment-id $COMP --work-request-id <wr-ocid>
Error Meaning
LimitExceeded Tenancy service limit reached for that shape/resource
QuotaExceeded A compartment quota policy blocks it
Out of host capacity OCI has no capacity for that shape in that AD/FD right now

2. Service limits

# Which limits exist for compute (names like standard-e4-core-count)
oci limits value list --compartment-id $TENANCY --service-name compute --all \
  --query "data[?contains(name,'e4')].{name:name, ad:\"availability-domain\", value:value}" --output table

# How much is used and available in an AD
oci limits resource-availability get --compartment-id $TENANCY --service-name compute \
  --limit-name standard-e4-core-count --availability-domain "Uocm:EU-FRANKFURT-1-AD-1"

Immediate options:

  • Free capacity by stopping or terminating non-production instances on the same shape in the same tenancy and region. Stopped instances of most VM shapes no longer count against core limits (check for your shape).
  • Launch on a different shape (for example E5 instead of E4) that has headroom.
  • Request a limit increase from the console (Governance > Limits, Quotas and Usage > Request a service limit increase). Sev1 requests can be raised with Oracle Support at high severity.

3. Compartment quotas

oci limits quota list --compartment-id $TENANCY --all \
  --query 'data[].{name:name, id:id}' --output table
oci limits quota get --quota-id <quota-ocid> --query 'data.statements'

Statements look like:

set compute-core quota standard-e4-core-count to 64 in compartment prod

Raise it (requires quota admin rights):

oci limits quota update --quota-id <quota-ocid> --force --statements \
  '["set compute-core quota standard-e4-core-count to 128 in compartment prod"]'

Warning

--statements replaces all statements in that quota. Copy the existing list and change only the line you need.

4. Out of host capacity

This is not a limit you can raise. Options:

  • Try a different availability domain or fault domain (in multi-AD regions).
  • Use a different shape family or a flexible shape with a different OCPU/memory size.
  • Use capacity reservations for critical workloads so capacity is held for you.
oci compute capacity-reservation list --compartment-id $COMP --output table

5. Unblock the pool

After fixing, the instance pool or node pool usually retries on its own. If not, set the size again:

oci compute-management instance-pool update --instance-pool-id <pool-ocid> --size 8
oci ce node-pool update --node-pool-id <np-ocid> --size 6

Prevent it next time

  • Review limits monthly against peak plus DR needs; raise them in advance.
  • Set alarms on limit usage (Limits supports utilisation checks; or script resource-availability).
  • Create capacity reservations for DR and burst-critical pools.
  • Allow more than one shape in instance configurations where workloads tolerate it.