# access_check_unavailable

> Permissions could not be checked

- Status: 503 Service Unavailable
- Returned by: /api/public with an organisation key
- Retry (`retryWhen`): `same_request`
- Did anything happen? (`outcome`): `none` (It did not happen)
- Rivr's services
- Page in the portal: https://developers.rivr.io/errors/access_check_unavailable
- Try it: `GET https://developers.rivr.io/errors/simulate/access_check_unavailable` answers with the code's exact wire form; `?succeedAfter=N&attempt=K` gives a 200 once `attempt` passes `N`

## What it means

Rivr couldn't tell what the caller may do right now, because the service that holds the permissions didn't answer. It isn't the caller's fault, and the key isn't invalid.

## What your system does

Wait as many seconds as the `Retry-After` header says and try again. Wait longer for each new attempt if it persists.

## Is it worth retrying?

Yes. The same call can succeed in a while.

`retryWhen`: `same_request`. Send the very same request again, unchanged: the same `Idempotency-Key` and the same order id. Wait `Retry-After` seconds when the answer has the header, otherwise a short while that grows with each attempt.

## Did anything happen?

`outcome`: `none`. **It did not happen.** This call did not do what you asked for and changed nothing else that you can see or that concerns money. Where the code has an `outcomeNote`, it takes precedence.

## Example: /api/public with an organisation key

```http
HTTP/1.1 503 Service Unavailable
Content-Type: application/problem+json
Retry-After: 5
Rivr-Should-Retry: true

{
  "type": "https://developers.rivr.io/errors/access_check_unavailable",
  "title": "The access check is unavailable right now. Try again shortly.",
  "status": 503,
  "code": "access_check_unavailable",
  "detail": "The access check is unavailable right now. Try again shortly.",
  "instance": "/api/public/orders/7b1e7c3a-2f4d-4a51-9c7e-5d0a6b8e2c14/status",
  "requestId": "5f0c2a7e-9b41-4d3a-8e6f-1c2d3b4a5e6f",
  "retryWhen": "same_request"
}
```

The `title`, `detail`, `message` and `error_description` texts are exactly as the API writes them today.
