Skip to content

When a quota is exceeded

The quota_exceeded error, its status codes and what it contains.

Updated View as Markdown

A request that would take a quota past its value is refused with the error code quota_exceeded. Nothing is created or processed.

Kind Status quota also contains
Allocation 409 Conflict used
Rate 429 Too Many Requests window
Usage 429 Too Many Requests used, periodStart, resetsAt
Concurrency 429 Too Many Requests inFlight

Every quota object has id, kind, scope and limit (the value that applied), and scopeResourceName when the error names the organization or project.

{
  "error": {
    "code": "quota_exceeded",
    "message": "This organization already has 10 projects, and can have at most 10 (organizations.projects.count)",
    "quota": {
      "id": "organizations.projects.count",
      "kind": "allocation",
      "scope": "organization",
      "scopeResourceName": "ezgh::org_k3f9a0x2m7qp",
      "limit": 10,
      "used": 10
    }
  }
}

Handling the error

The response has no Retry-After header: the refusal means you are at the quota, not that the service is busy. Don’t retry on a timer.

  • Allocation: delete resources you no longer need, then try again.
  • Rate: send requests more slowly. Capacity refills over the quota’s window.
  • Usage: usage resets at resetsAt, the start of the next billing period.
  • Concurrency: wait for requests in flight to finish.

A refused request with an Idempotency-Key is not stored, so you can send the same key again once there is room.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close