Errors
The error envelope, the codes that matter, and how to tell a client mistake from a service state.
Universe implementation Verified 2026-08-31
Describes what a Bitcoin Universe service actually does today. It is not a statement about the protocol in general.
- Page ID
-
develop/errors - Normative authority
- Universe implementation documentation
- Networks
- mainnet
- Documentation version
- 2026.08
- Audience
- developer, integrator
- Owner
- bitcoin-universe-docs
- Sources
-
- Universe Atomicals NFT, Realm, and Subrealm index
at
1d9109c68d95private repository
- Universe Atomicals NFT, Realm, and Subrealm index
at
Это содержимое пока не доступно на вашем языке.
The envelope
Section titled “The envelope”Errors are returned as JSON with a stable shape: a machine-readable code, a human-readable message, and the request identifier. The request identifier is the field to log.
Status codes and what they mean
Section titled “Status codes and what they mean”| Status | Meaning | Retry |
|---|---|---|
| 400 | The request was malformed or a value was invalid | No, fix the request |
| 401 | Missing or invalid credentials | No |
| 403 | Authenticated but not permitted | No |
| 404 | Route not found, or the asset is not in the active generation | Depends. Check readiness first |
| 405 | Method not allowed on a known route | No |
| 409 | A conflict, such as an idempotency mismatch | No, inspect the conflict |
| 414 | The request URL is too long | No |
| 429 | Rate limited, where a limit is implemented | Yes, with backoff |
| 500 | An unexpected server error | Yes, with backoff |
| 503 | Not ready, unavailable, or degraded | Yes, after checking readiness |
The 404 that is not an error
Section titled “The 404 that is not an error”A 404 on an asset route can mean the asset does not exist, or that it is not in the active generation, or that it is outside this projection. Those are different.
Check /ready and the projection before concluding anything is missing.
See unavailable index against empty balance.
Named codes you will see
Section titled “Named codes you will see”| Code | Meaning |
|---|---|
NFT_NOT_FOUND |
No plain NFT with that Atomical ID in the active generation |
REALM_NOT_FOUND |
No Realm or Subrealm with that Atomical ID in the active generation |
ASSET_NOT_FOUND |
No asset of any projected type with that Atomical ID |
NFT_MEDIA_NOT_FOUND |
The asset exists, the requested media field does not |
METHOD_NOT_ALLOWED |
Known route, wrong method. The allow header names the right one |
METRICS_DISABLED |
Metrics are turned off on this deployment |
NOT_FOUND |
The route itself does not exist |
Validation errors
Section titled “Validation errors”Validation failures carry a specific reason rather than a generic message. A malformed Atomical
ID, an out-of-range page, an unsupported kind filter, and a malformed media field name each
report what was wrong.
Unicode and IDNA name errors are surfaced explicitly rather than being flattened into a generic validation failure.
What a client should do
Section titled “What a client should do”- Log the request identifier with every failure.
- Distinguish client mistakes from service states before retrying.
- Retry only 429, 500, and 503, with exponential backoff and jitter.
- On 503, read
/readyand use its reason rather than retrying blindly. - Never treat 404 as “the asset was destroyed”.