VATrelay → VIES errors
MS_MAX_CONCURRENT_REQThe member state's VIES backend is refusing requests because too many are already in flight — across all VIES users worldwide, not just yours.
Not your code. Not your IP. Not your rate limit.
Retry with backoff, and cache aggressively. We measure the French backend answering roughly one request in six, so retrying alone will not save a checkout flow. The only robust fix is to serve a cached answer and degrade explicitly.
| Member state | Now | 24 h | Last error |
|---|---|---|---|
| FR | down | 33.0% | MS_MAX_CONCURRENT_REQ |
| DE | up | 79.0% | — |
| BE | up | 97.0% | — |
| ES | up | 100.0% | — |
| IT | up | 100.0% | — |
| NL | up | 100.0% | — |
| PL | up | 100.0% | — |
| PT | up | 100.0% | — |
We query each member state's real backend every 10 minutes with a live VAT number.
The Commission's own status endpoint reports Available for member states that are in
fact refusing most requests — only a real call tells the truth. This data is free and needs no
account: GET /v1/uptime.
VATrelay absorbs every error on this page. When VIES is silent we serve the last
known answer, flagged stale with its original timestamp, or the offline structural
verdict — always HTTP 200, always a usable body. We never invent a validity verdict.