# temporarily-unavailable

`https://ckrets.ai/problems/temporarily-unavailable` is a problem type of the ckrets.ai API (RFC 9457: the body is
`application/problem+json` with `type`, `title`, `status` and `detail`; every problem from `/v1` also carries `requestId`).

| Status | Also in the answer | What to do |
|---|---|---|
| 503 | `retryable: true` (`Retry-After: 1`), no `outcome` | nothing was done; send it again after a second. The other `503 temporarily-unavailable`, with `outcome: "unknown"`, carries `Retry-After` too: tell the two apart by `outcome` in the body, never by the header |
| 503 | `outcome: "unknown"` (`retryable: false`) | a write may have happened: read the call in `check` first (a lost reveal is worked through in [Limits](/limits.md#errors-retries-and-headers)). The other `503 temporarily-unavailable`, without `outcome`, means nothing was done. `check` is `none` for a create (create again; the first, if it was made, expires unrevealed: nobody holds its token, so nobody can reveal it and the value is not delivered twice), `GET /v1/secrets/{token}/public` for a reveal (`state` says whether it was spent; if it was and the answer was lost, the value is gone: create again), a claim or a puzzle open, `GET /v1/secrets/{token}/status` for a revoke or a policy change |

Every type, with its retry rule and headers: [limits.md, "Errors, retries and headers"](/limits.md#errors-retries-and-headers).
