Skip to content
Latchkey

Jira REST "429 Too Many Requests" rate limit in CI

Jira Cloud enforces per-site rate limits. When a pipeline bursts too many API calls, Jira returns 429 with a Retry-After header telling you how long to wait before trying again.

What this error means

A batch of Jira calls starts returning HTTP 429 "Too Many Requests," sometimes only under parallel matrix jobs hitting the same site.

Jira REST
HTTP/1.1 429 Too Many Requests
Retry-After: 12
{"message":"Rate limit exceeded"}

Common causes

Too many calls in a short window

A loop over many issues, or parallel matrix jobs sharing one token, exceeds the site rate limit and trips 429.

No backoff on the client

The pipeline retries immediately instead of honoring Retry-After, which keeps it over the limit.

How to fix it

Honor Retry-After and back off

  1. Read the Retry-After header on a 429 and sleep that many seconds.
  2. Retry with exponential backoff for a bounded number of attempts.
  3. Serialize or throttle bulk operations to stay under the limit.
Terminal
for i in 1 2 3 4 5; do
  code=$(curl -s -o /tmp/r -w '%{http_code}' -u "$JIRA_EMAIL:$JIRA_API_TOKEN" "$URL")
  [ "$code" != "429" ] && break
  sleep $(( i * 5 ))
done

Reduce request volume

Batch reads with JQL/search instead of per-issue GETs, and avoid many matrix jobs hammering the same site simultaneously.

How to prevent it

  • Back off on 429 using the Retry-After header, not fixed sleeps.
  • Batch reads with search/JQL instead of one call per issue.
  • Throttle parallel jobs that share a single Jira token.

Frequently asked questions

What causes "Jira "429 Too Many Requests""?
A loop over many issues, or parallel matrix jobs sharing one token, exceeds the site rate limit and trips 429.
How do I fix Jira "429 Too Many Requests"?
Honor Retry-After and back off

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card