Skip to content
Latchkey

Terraform AWS provider "ThrottlingException: Rate exceeded" in CI

AWS returned ThrottlingException: Rate exceeded (or RequestLimitExceeded) because Terraform issued API calls faster than the service allows. This is transient: the request is valid, just rate-limited.

What this error means

terraform plan or apply fails or slows with "ThrottlingException: Rate exceeded" or "RequestLimitExceeded", often on large configs with high parallelism.

Terraform
Error: reading EC2 Instances: operation error EC2: DescribeInstances,
https response error StatusCode: 400, api error RequestLimitExceeded:
Request limit exceeded.

Common causes

High parallelism on a large config

Terraform refreshes and applies many resources at once; on a big state the burst of API calls trips the service rate limit.

Many concurrent jobs hitting the same account

Several CI pipelines against one account share the API budget, so each gets throttled sooner.

How to fix it

Lower parallelism so calls spread out

Reduce concurrent operations so Terraform stays under the rate limit. The provider already retries throttled calls with backoff.

Terminal
terraform apply -parallelism=5

Increase provider retries for bursty APIs

Allow more SDK retries so transient throttles are absorbed instead of failing the run.

main.tf
provider "aws" {
  max_retries = 10
}

How to prevent it

  • Keep parallelism modest on large states.
  • Stagger concurrent pipelines that share one account.
  • Raise max_retries so transient throttles self-resolve.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →