Skip to main content
The VU Identity Link API uses standard HTTP status codes to indicate the result of every request. This page groups all errors by status code, explains why they occur, and provides concrete steps to resolve them. It also documents the behavior changes introduced in version 2.2.0.

Error response format

All error responses share the same schema:
Link-specific errors (status 409) use the LinksErrorGetResponse schema, where code is numeric:
The 404 for a route that does not exist uses a third format, without type: {"message": "...", "resource": "..."}. See 404 Not Found.

400 Bad Request

401 Unauthorized

403 Forbidden

404 Not Found

From version 2.2.0, PATCH /verifications, PATCH /verifications/error, and PATCH /verifications/identify return 404 when the verification does not exist or has expired. In versions prior to 2.2.0, these endpoints returned 200 without making changes.
The 404 for a route that does not exist has its own body: it has no type, and it exposes resource with the path received.
The most common cause is losing /api/v1 when the path is joined to a base URL:
End the base URL with / and write the path without a leading /, or use the full URL.

409 Conflict

From version 2.2.0, PATCH /verifications and PATCH /verifications/error return 409 when the verification status does not permit the requested operation. In versions prior to 2.2.0, these endpoints returned 200 without making changes.

410 Gone

422 Unprocessable Entity

429 Too Many Requests

500 Internal Server Error

501 Not Implemented

503 Service Unavailable

General recommendations

1

Retry with exponential backoff

For 429, 500, and 503 errors, wait 1 second before the first retry, then 2, 4, and 8 seconds, up to a maximum of 5 attempts.
2

Do not retry client errors

Status codes 400, 401, 403, 404, 409, and 422 signal a problem with the request. Retrying them unchanged produces the same result.
3

Validate the request body before sending

Use a JSON Schema validator to ensure all required fields are present and typed correctly.
4

Cache tokens

The access_token lasts 3600 seconds. Reuse it until expiry instead of requesting a new token on every call to avoid unnecessary 401 errors.
5

Monitor service health

Implement periodic checks of GET /health/status to detect degradation before it affects your users.
Last modified on August 28, 2026