MS_MAX_CONCURRENT_REQ VIES error: what it means and what to do
MS_MAX_CONCURRENT_REQ means VIES did not process your check because the maximum number of concurrent requests for that member state was reached. The VAT number was not checked. Wait, send fewer checks to that country at once, and retry. Never treat the result as invalid.
Your Request for VAT validation has not been processed; the maximum number of concurrent requests for this Member State has been reached. Please re-submit your request later
VIES checkVatService WSDL (fault list)
What it means
VIES limits how many requests can be open towards each member state at the same time. When that limit is reached, it rejects the check without processing it and returns MS_MAX_CONCURRENT_REQ, asking you to re-submit the request later.
What causes it
VIES's documentation puts it down to high traffic towards the member state you are trying to reach. A related fault, MS_MAX_CONCURRENT_REQ_TIME, reports the limit for the current timeslot, and the VIES test service lists the two as separate errors.
How to handle it
- Treat the result as unknown, never as invalid.
- If you check numbers in parallel, send fewer checks to the same member state at once, for example with a queue per country.
- Retry after a pause, with backoff and random jitter so retries from several workers do not arrive together.
- Stop after a bounded number of attempts and queue the check for later.
What Avatcado does when VIES returns MS_MAX_CONCURRENT_REQ
Avatcado retries MS_MAX_CONCURRENT_REQ inside the same request, with a short pause and random jitter between attempts.
If VIES still has no answer, Avatcado asks the country's national tax register on the Pro and Business plans, for the 10 EU countries that have one (listed on the coverage page), and on every plan it falls back to the most recent stored result for that number. When neither can answer, the API returns a 503 with the code upstream_member_state_unavailable, and the call does not count against your quota. A check that ends in an availability error is never stored as an answer. A request that carries requester_vat_number skips both fallbacks by default, because a consultation number has to come from a completed VIES check.
How often Avatcado sees MS_MAX_CONCURRENT_REQ
From the VIES calls Avatcado made for customer API keys in the last 90 days, with test keys and the demo checker left out. Each request counts once, however often Avatcado retried it: shares count requests, and rates count each request's first call to VIES. A request can meet more than one of these errors while it is retried, so the shares across codes can add up to more than 100%.
- Answered after a retry: of the requests that hit MS_MAX_CONCURRENT_REQ at least once, the share that still got a valid or invalid verdict from VIES later in the same request. A request that ended on another VIES error is not counted.
Where it happens
Countries with at least 5 requests that hit MS_MAX_CONCURRENT_REQ, up to 8, ranked by their share of those requests. The last column is the country's own rate per 100 first calls to VIES.
| Country | Share of MS_MAX_CONCURRENT_REQ requests | Per 100 first calls |
|---|---|---|
| France | 74.7% | 63.4% |
| Germany | 5.8% | 6.7% |
| Belgium | 5.6% | 25% |
| Denmark | 5% | 22.8% |
| Poland | 2.6% | 7.2% |
| Netherlands | 1.9% | 12.4% |
| Sweden | 1.8% | 2.7% |
| Czech Republic | 1.4% | 19% |
Week by week
MS_MAX_CONCURRENT_REQ per 100 first calls to VIES in each of the last 13 weeks.
Frequently asked questions
What is the difference between MS_MAX_CONCURRENT_REQ and MS_MAX_CONCURRENT_REQ_TIME?
Both say the request was not processed because a concurrency limit for the member state was reached. VIES's message for MS_MAX_CONCURRENT_REQ_TIME adds that the limit was reached in the current timeslot. VIES does not publish either limit as a number, so handle both the same way: wait, send fewer checks to that country at once, and retry.
Can my own traffic cause MS_MAX_CONCURRENT_REQ?
VIES does not say whether the limit counts your requests alone. Its documentation describes the cause as high traffic towards the member state. If the fault appears when you run checks in parallel, lowering your own concurrency for that country is the part you control.
Keep reading
Sources
- VIES checkVatService WSDL (fault list) European Commission (DG TAXUD), accessed November 12, 2026
- Error messages shown by VIES on-the-web (English) European Commission (DG TAXUD), accessed November 12, 2026
- VIES checkVatTestService WSDL (test numbers per fault) European Commission (DG TAXUD), accessed November 12, 2026