What is the cause of “Maximum concurrent jobs has been exceeded”, HTTP response 429

The error:

Maximum concurrent jobs has been exceeded

with HTTP response code:

429 Too Many Requests

means that your account is attempting to run more Weather API requests at the same time than are currently permitted.

What is concurrency?

Concurrency is the number of API requests that are actively being processed at the same time.

For example, if your application starts 20 Weather API requests simultaneously, it may have up to 20 concurrent requests in progress.

Visual Crossing plans have request and concurrency limits. If the number of simultaneous requests exceeds the concurrency available to your account, additional requests can return:

429 Too Many Requests

How do I fix the error?

Reduce the number of Weather API requests that your application runs simultaneously.

For example, instead of starting a large number of requests at once, use a worker pool or request queue that limits how many requests can be active at the same time.

If a request fails because the concurrency limit was temporarily exceeded, it can generally be retried after other active requests have completed.

However, applications should not use aggressive retry loops to attempt to circumvent concurrency limits.

A better pattern is to:

  • Limit the number of simultaneous requests.
  • Retry temporary failures after a reasonable delay.
  • Limit the number of retry attempts.
  • Inspect the HTTP response body to determine the specific reason for the 429 response.

Not every HTTP 429 means the same thing

A 429 Too Many Requests response can also indicate that another usage or request limit associated with the account has been reached.

Therefore, always read both:

HTTP status code
response body

The response body provides additional information about the specific limit that caused the request to fail.

If the message specifically says:

Maximum concurrent jobs has been exceeded

the immediate action is to reduce the number of concurrent requests.

Concurrency and large data requests

The maximum concurrency available on an account should not necessarily be treated as the ideal concurrency for every workload.

Requests that retrieve large amounts of historical data or perform more complex processing can remain active longer than small requests.

For sustained workloads such as loading databases, analytical systems, or large historical datasets, using a controlled level of concurrency can produce more consistent results than continuously running at the maximum possible level.

Visual Crossing plans include usage and request limits, and applications should operate within the limits of the account plan being used.

Check your account limits

Your available concurrency depends on your Visual Crossing plan and account configuration.

Review the current Visual Crossing pricing and plan information or contact Visual Crossing Support if you need help determining the limits associated with your account.

For information about other Weather API errors, see HTTP Error Codes.