This page provides details about rate limiting for app migration, and can help you understand how to manage how your app migration responds to rate limits.
Rate limits exist to ensure the overall customer experience is not impacted by individual clients. While some features may have relaxed rate limits, all migration flows must be built to minimise the risk of hitting rate limits and robustly handle calls that are rate limited.
As a migration may create a significant number of calls to the core product, attention needs to be given to how to respond to rate limit conditions. This risk of rate limits can be reduced if clients ensure they use bulk APIs where available to reduce the overall call rate, use efficient calls, and cache stable data where feasible.
Additional rate limits apply for Forge apps, see rate limiting guidelines.
When calling app migration APIs vendors must implement exponential backoffs and retries to increase resilience to events affecting API call responses, such as:
It is vital that apps handle responses with the HTTP 429 Too Many Requests status code, the Retry-After header, HTTP 5xx server errors, and network timeouts.
App migrations should treat receiving a 429 HTTP response, a Retry-After header, or HTTP 5xx errors as signals to retry the request after an appropriate delay.
When implementing retries for app migration API calls, we recommend following these best practices:
Retry requests in the following scenarios:
Retry-After header if presentHTTP 408 - Request TimeoutHTTP 500 - Internal Server ErrorHTTP 502 - Bad GatewayHTTP 503 - Service UnavailableHTTP 504 - Gateway TimeoutYou must only retry requests that are safe to retry multiple times without changing the result.
Exhausting retry attempts or triggering a circuit breaker will in most cases cause a migration failure. Consideration should be given to reducing concurrency and slowing the request rate prior to failing the migration.
As with all web requests, you may receive HTTP 429 Too Many Requests responses for requests made to the app migration platform
from the cloud app. When this occurs, check for the Retry-After header and implement exponential backoff as described above.
When migrations are generating a large call rate over an extended period of time, vendors should also reduce call concurrency when
rate limits are encountered. If a number of workers are concurrently performing the migration, the number of workers should be reduced when consistent 429 Too Many Requests responses are encountered.
When calling the app migration platform methods from your server app, if the rate limit is exceeded you will receive a RuntimeException
with an exception message App migration API rate limit exceeded..
Implement exponential backoff to handle these rate limits.
During Jira app migration, apps may be subject to both a point-based 'quota' rate limit and a 'burst-rate' limit mechanism in which they may receive 429 responses. The documentation in Jira Cloud Platform rate limiting explains these mechanisms further.
To ensure your app migration code does not impact any other Confluence customer on the same infrastructure,
you must include the HTTP header Migration-App with each request to any
Confluence REST API. You can use any value with this header.
See an example
1 2Migration-App: true
Use this header to ensure that your migration path does not impact customers, and avoids the possibility that your app key can be banned from app migration.
The table below details the current rate limits in Confluence.
| Limit | Frequency | Time |
|---|---|---|
| 6000 requests | per app per Confluence cloud instance | one minute |
| 12000 requests | per Confluence cloud instance | one minute |
As with all web requests, you may receive HTTP 429 Too Many Requests responses.
Activity by other users of your app, or by other apps / users on the same cloud site may consume some of the quota that would be available to you. To prepare for such variability, all apps need to implement the retry policy of rate limiting responses.
The following articles provide useful insights and techniques:
Rate this page: