Troubleshoot quota errors

You might receive quota errors for a number of reasons, such as exceeding quota values or not setting the quota on a project correctly. If you want to be alerted when errors happen, you can create custom alerts for specific quota errors, as described in Set up quota alerts.

Exceeding rate quotas

Rate quotas reset after a predefined time interval that is specific to each service. For more information, see the quotas documentation for the specific service.

Exceeding quota values

If your project exceeds its maximum quota value while using a service, Google Cloud returns an error based on how you accessed the service:

  • If you exceed a quota value with an API request, Google Cloud returns an HTTP 413 REQUEST ENTITY TOO LARGE status code. Note that when using the BigQuery legacy streaming API in a production environment, you may receive a 413 REQUEST ENTITY TOO LARGE status code if your HTTP requests are larger than 10 MB. You may also receive this error if you exceed 300 MB per second. For more information see Streaming inserts.
  • If you exceeded a quota value with an HTTP/REST request, Google Cloud returns an HTTP 429 TOO MANY REQUESTS status code.
  • If you exceed a quota for Compute Engine, Google Cloud typically returns an HTTP 403 QUOTA_EXCEEDED status code, whether it was from API, HTTP/REST, or gRPC. If the quota is a rate quota, then 403 RATE_LIMIT_EXCEEDED is returned.
  • If you exceeded a quota value using gRPC, Google Cloud returns a ResourceExhausted error. How this error appears to you depends on the service.
  • If you exceeded a quota value using a Google Cloud CLI command, the gcloud CLI outputs a quota-exceeded error message and returns with the exit code 1.
  • If you received a QUOTA_EXCEEDED message during a service rollout, see the following section.

Exceeding quota values during a service rollout

Google Cloud sometimes changes the default quota values for resources and APIs. These changes take place gradually, which means that during the rollout of a new default quota, the quota value that appears in the Google Cloud console might not reflect the new quota value that is available to you.

If a quota rollout is in progress, you may receive an error message that states The future limit is the new default quota that will be available after a service rollout completes. If you see this error message, the cited quota value and future value are correct, even if what appears in the Google Cloud console is different.

  • For additional information, view the audit logs and look for a QUOTA_EXCEEDED message.

        "status": {
          ...
          "message": "QUOTA_EXCEEDED",
          "details": [
            {
              ...
              "value": {
                "quotaExceeded": {
                  ...
                  "futureLimit": FUTUREVALUE
                }
              }
            }
          ]
        },
    
  • To view graphs that show current and peak usage, in the Google Cloud console, click the monitoring monitoring icon. You might need to scroll all the way to the right to see this icon.

  • If you need more quota than you have access to, and can't wait until the service rollout completes, request a quota adjustment.

API error messages

If your quota project (also called a billing project) isn't set correctly, API requests might return the following error messages:

  • user credentials not supported by this API
  • API not enabled in the project
    • no quota project set

These and other errors can often be fixed by setting the quota project. For more information, see Quota project overview.

Dynamic shared quota error messages

If the number of your requests exceeds the capacity allocated to process those requests, dynamic shared quota might generate error code 429 when using the following products:

Product Message
Pay as you go (paygo) Resource exhausted, please try again later.
Provisioned throughput Too many requests. Exceeded the provisioned throughput.

To correct the problem, do the following:

  • Send your request again using exponential backoff.
  • If you have set a consumer override, such as a cost control measure or to prevent budget overruns, increase the limit. For more information, see Dynamic shared quota.
  • Consider using provisioned throughput for a more consistent level of service. For more information, contact Google Cloud Sales.