Symptoms
- Instance pool or OKE node pool scale-out fails; work request errors show
LimitExceeded,QuotaExceededorOut 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
--statementsreplaces 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.