# The error simulator: GET /errors/simulate/<code>

- Date: 2026-11-01
- Type: New
- Surface: Developer portal and CLI
- What you need to do: Nothing.
- Address: https://developers.rivr.io/changelog/2026-11-01-error-simulator

`GET /errors/simulate/<code>` answers as the code in the error catalogue: its status and an `application/problem+json` body with its `code` and `type`. A code that can be retried with the same request also gets `Retry-After: 1`, short so that a test doesn't wait, and a code from the key check gets `Rivr-Should-Retry`, so you can test your error handling before the first real error. Add `?succeedAfter=N` and count the attempts yourself with `&attempt=K`: once `K` is greater than `N` the answer is `200` with `simulated` set to `success`, so you can test that your retry loop recovers. The simulator keeps no state between calls, touches no data and needs no sign-in or key; it has no limit of its own beyond the portal's limit for public routes. A code that is not in the catalogue answers `404` with `not_found` and the address of /errors.json. /errors.json gives each code's simulator address as `simulate`, and each code's Markdown page has a Try it line.

