-
Bug
-
Resolution: Fixed
-
High
-
14
-
Severity 2 - Major
-
3
-
Hi everyone,
In Jira Cloud we use rate limiting for REST API to protect our customers' sites (aka tenants) resources. Current implementation isn’t based on REST API consumer, it is based on concurrent requests made across all consumers of single tenant - consider tenant users, your App and other Apps accessing the infrastructure. Thus it is a challenge to provide meaningful, guaranteed information for consumer in response headers (e.g. Retry-After), such information could be seen only as a suggestion.
In case of implementing retries please be advised of using back-off mechanism to lower retry frequency on subsequent failed attempts and increase traffic gradually on a success. Concurrency based limiting is more visible for longer requests so the rule of thumb would be the longer request is the lower concurrency should be used.
We are actively working on per consumer rate limiting which should help us provide meaningful information in response headers. We expect it to be delivered in couple of quarters.
With regard to this issue we’ll fix it by not returning 500 and provide suggestion (as described above) when retry may happen.
Summary
Calling search or other REST API endpoints might return status code 500 instead of status code 429 when the error FATAL: too many connections for role... is logged.
Sometimes other random status codes like 503, 400 or 403 are returned for the same root-cause.
Steps to Reproduce
- Send REST APIs calls (in example the Search endpoint was used) in continuous succession
Expected Results
If the rate limit is hit, the status 429. Throttling limit state should be returned in headers like here
Actual Results
Different status codes including 500, 503, 400 and 403 are returned instead.
- is cloned from
-
JRACLOUD-70291 500 "FATAL: too many connections for role" caused by Edge malfunction
- Closed
- is related to
-
JIRAALIGN-3813 No API communication between Jira Align Cloud and Jira Cloud and show a 503 error when the Jira Connector runs a Jira HealthCheck
- Closed
-
ALIGNSP-11302 Loading...
-
DEVHELP-1711 Loading...
-
DEVHELP-1730 Loading...
-
DEVHELP-2195 Loading...
-
DEVHELP-2504 Loading...
- relates to
-
JRACLOUD-76460 JQL search against a large number of entity properties results in timeout errors
- Closed
-
JRACLOUD-77242 When the underlying functions required for the rest/api/2/search to complete timeout, the response code is a 500 - Internal Server Error
- Closed
-
JRACLOUD-81846 HTTP Status 403 returned for DB connection error when calling REST APIs
- Gathering Impact
-
ACJIRA-1892 Loading...
-
ACJIRA-1929 Loading...
-
DEVHELP-1726 Loading...
-
DEVHELP-2112 Loading...
-
JCES-697 Loading...
- is cloned by
-
JCES-670 Loading...
- is referenced by
-
JSRE-9134 Loading...
- links to
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
- resolves
-
JST-417937 Loading...