Orion /v3 Problem Codes (53 Codes)
Orion's /v3/* endpoints (/v3/statistics, /v3/accounts, /v3/ledgers, /v3/transactions, /v3/operations, /v3/Orderbook) emit strict RFC 7807 Problem Details responses (Content-Type: application/problem+json) linking directly to https://orion.stellarchain.io/problems/<code>.
account_not_found HTTP 404The requested Stellar account (`G...`) does not exist in the current ledger state or has been merged.
asset_not_found HTTP 404No trustlines or supply records exist for the requested asset (`CODE:ISSUER`).
bundle_advanced HTTP 409The underlying immutable state/history bundle rotated while executing a multi-part scan. Retry the request immediately.
capability_unavailable HTTP 503The node does not currently have the required state or index loaded to serve this endpoint.
claimable_balance_not_found HTTP 404The requested claimable balance ID does not exist in the current ledger state (it may have already been claimed).
cursor_context_mismatch HTTP 400An opaque `/v3` pagination cursor was used with different query parameters or on a different endpoint than the one that issued it.
expired_cursor HTTP 410The pagination cursor has expired beyond its retention window. Restart pagination from the first page.
history_incomplete HTTP 409The requested ledger range is not fully covered by the currently mounted archive and live buffer.
internal_error HTTP 500An unexpected internal error occurred while executing the `/v3` request.
invalid_account HTTP 400The supplied account identifier is not a valid 56-character Stellar StrKey public key (`G...`).
invalid_asset HTTP 400The asset parameter is malformed. Use `native` or `CODE:ISSUER` with a valid StrKey issuer.
invalid_claimable_balance HTTP 400The claimable balance ID must be a valid 72-character hex balance ID (`00000000...`).
invalid_client_identity HTTP 400The client identity or forwarding header is malformed.
invalid_contract_id HTTP 400The Soroban contract identifier must be a valid 56-character StrKey contract address (`C...`).
invalid_cursor HTTP 400The `cursor` query parameter could not be parsed or is out of bounds for this endpoint.
invalid_include_failed HTTP 400The `include_failed` query parameter must be the boolean literal `true` or `false`.
invalid_ledger HTTP 400The `ledger` filter parameter is not a valid positive ledger sequence integer.
invalid_ledger_sequence HTTP 400The ledger sequence path parameter must be a positive 32-bit integer (`>= 1`).
invalid_limit HTTP 400The `limit` query parameter must be an integer between `1` and `200`.
invalid_liquidity_pool HTTP 400The liquidity pool ID must be a valid 64-character lowercase hexadecimal pool ID or `L...` StrKey.
invalid_offer HTTP 400The offer ID must be a positive 64-bit integer.
invalid_operation_id HTTP 400The operation ID must be a positive 64-bit TotalOrderID integer.
invalid_order HTTP 400The `order` query parameter must be either `asc` or `desc`.
invalid_parameter HTTP 400One or more query parameters failed validation.
invalid_path_request HTTP 400The strict-send or strict-receive path finding parameters are incomplete or invalid.
invalid_statistics_metric HTTP 400The metric slug in `/v3/statistics/{metric}` contains invalid characters. See `GET /v3/statistics` for all 47 valid metrics.
invalid_statistics_query HTTP 400The `/v3/statistics/{metric}` request is missing a required filter (such as `?asset=CODE:ISSUER`, `?corridor=A->B`, or `?account=G...`) or has an invalid `from`/`to` time range.
invalid_stream_request HTTP 400The Server-Sent Events (`text/event-stream`) request parameters or `Last-Event-ID` cursor are invalid.
invalid_transaction_hash HTTP 400The transaction hash must be a 64-character lowercase hexadecimal SHA-256 digest.
liquidity_pool_not_found HTTP 404The requested liquidity pool ID does not exist in the current ledger state.
method_not_allowed HTTP 405Only `GET` (and `HEAD`) requests are allowed on `/v3` query endpoints.
not_acceptable HTTP 406The `Accept` header does not allow `application/json`, `application/problem+json`, or `text/event-stream`.
offer_not_found HTTP 404The requested SDEX offer ID does not exist in the current order book state.
operation_not_found HTTP 404No operation with the specified ID exists in the ledger history.
origin_not_allowed HTTP 403The request `Origin` header is not permitted by the server's CORS policy.
overload HTTP 503The node's concurrent request limiter rejected the request due to high load. Retry with backoff.
publication_integrity_failure HTTP 500A cryptographic hash or manifest integrity check failed while reading an archive Parquet bundle.
rate_limited HTTP 429The client exceeded the configured per-IP rate limit.
request_body_not_allowed HTTP 400`GET` requests to `/v3` endpoints must not include a non-empty HTTP request body.
request_canceled HTTP 408The client canceled the HTTP request context before completion.
request_timeout HTTP 504The query exceeded the server's per-request execution deadline.
request_too_large HTTP 413The HTTP request body or URL exceeds the maximum permitted byte size.
resource_limit HTTP 422The query required scanning more partitions or account subentries than permitted in a single request.
route_not_found HTTP 404The requested URL path does not match any registered Orion `/v3` or Horizon route.
service_unavailable HTTP 503The server or an upstream dependency is temporarily unavailable.
stale_cursor HTTP 409The state snapshot referenced by the cursor has been superseded by a newer ledger snapshot.
statistics_integrity_failure HTTP 500The statistics manifest or Parquet family checksum failed verification.
statistics_metric_not_found HTTP 404The requested metric slug does not exist. Query `GET /v3/statistics` for the full list of 47 available metrics.
statistics_unavailable HTTP 503The statistics Parquet dataset is not currently mounted or reachable.
stream_gap HTTP 409The live SSE stream encountered a ledger gap and must be reconnected.
transaction_not_found HTTP 404No transaction with the given 64-character hex hash exists in ledger history.
unsupported_media_type HTTP 415The request `Content-Type` is not supported.
unsupported_parameter HTTP 400The request included an unknown query parameter that is not supported by this `/v3` endpoint.
Complete /v3 Problem Table
Problem Code (code) | HTTP Status | Title | Description |
|---|---|---|---|
account_not_found | 404 | Account was not found | The requested Stellar account (G...) does not exist in the current ledger state or has been merged. |
asset_not_found | 404 | Asset was not found | No trustlines or supply records exist for the requested asset (CODE:ISSUER). |
bundle_advanced | 409 | History bundle advanced; retry the request | The underlying immutable state/history bundle rotated while executing a multi-part scan. Retry the request immediately. |
capability_unavailable | 503 | Requested capability is unavailable | The node does not currently have the required state or index loaded to serve this endpoint. |
claimable_balance_not_found | 404 | Claimable balance was not found | The requested claimable balance ID does not exist in the current ledger state (it may have already been claimed). |
cursor_context_mismatch | 400 | Cursor does not match this request | An opaque /v3 pagination cursor was used with different query parameters or on a different endpoint than the one that issued it. |
expired_cursor | 410 | Cursor has expired | The pagination cursor has expired beyond its retention window. Restart pagination from the first page. |
history_incomplete | 409 | History coverage is incomplete | The requested ledger range is not fully covered by the currently mounted archive and live buffer. |
internal_error | 500 | Internal server error | An unexpected internal error occurred while executing the /v3 request. |
invalid_account | 400 | Account ID is invalid | The supplied account identifier is not a valid 56-character Stellar StrKey public key (G...). |
invalid_asset | 400 | Asset parameter is invalid | The asset parameter is malformed. Use native or CODE:ISSUER with a valid StrKey issuer. |
invalid_claimable_balance | 400 | Claimable balance ID is invalid | The claimable balance ID must be a valid 72-character hex balance ID (00000000...). |
invalid_client_identity | 400 | Client identity header is invalid | The client identity or forwarding header is malformed. |
invalid_contract_id | 400 | Contract ID is invalid | The Soroban contract identifier must be a valid 56-character StrKey contract address (C...). |
invalid_cursor | 400 | Cursor is invalid | The cursor query parameter could not be parsed or is out of bounds for this endpoint. |
invalid_include_failed | 400 | include_failed must be true or false | The include_failed query parameter must be the boolean literal true or false. |
invalid_ledger | 400 | Ledger parameter is invalid | The ledger filter parameter is not a valid positive ledger sequence integer. |
invalid_ledger_sequence | 400 | Ledger sequence is invalid | The ledger sequence path parameter must be a positive 32-bit integer (>= 1). |
invalid_limit | 400 | Limit parameter is invalid | The limit query parameter must be an integer between 1 and 200. |
invalid_liquidity_pool | 400 | Liquidity pool ID is invalid | The liquidity pool ID must be a valid 64-character lowercase hexadecimal pool ID or L... StrKey. |
invalid_offer | 400 | Offer ID is invalid | The offer ID must be a positive 64-bit integer. |
invalid_operation_id | 400 | Operation ID is invalid | The operation ID must be a positive 64-bit TotalOrderID integer. |
invalid_order | 400 | Order must be asc or desc | The order query parameter must be either asc or desc. |
invalid_parameter | 400 | Query parameter is invalid | One or more query parameters failed validation. |
invalid_path_request | 400 | Path payment query parameters are invalid | The strict-send or strict-receive path finding parameters are incomplete or invalid. |
invalid_statistics_metric | 400 | Statistics metric identifier is invalid | The metric slug in /v3/statistics/{metric} contains invalid characters. See GET /v3/statistics for all 47 valid metrics. |
invalid_statistics_query | 400 | Statistics query parameters are invalid | The /v3/statistics/{metric} request is missing a required filter (such as ?asset=CODE:ISSUER, ?corridor=A->B, or ?account=G...) or has an invalid from/to time range. |
invalid_stream_request | 400 | SSE stream request is invalid | The Server-Sent Events (text/event-stream) request parameters or Last-Event-ID cursor are invalid. |
invalid_transaction_hash | 400 | Transaction hash is invalid | The transaction hash must be a 64-character lowercase hexadecimal SHA-256 digest. |
liquidity_pool_not_found | 404 | Liquidity pool was not found | The requested liquidity pool ID does not exist in the current ledger state. |
method_not_allowed | 405 | Method is not allowed | Only GET (and HEAD) requests are allowed on /v3 query endpoints. |
not_acceptable | 406 | Response media type is not acceptable | The Accept header does not allow application/json, application/problem+json, or text/event-stream. |
offer_not_found | 404 | Offer was not found | The requested SDEX offer ID does not exist in the current order book state. |
operation_not_found | 404 | Operation was not found | No operation with the specified ID exists in the ledger history. |
origin_not_allowed | 403 | Origin is not allowed | The request Origin header is not permitted by the server's CORS policy. |
overload | 503 | Server is overloaded | The node's concurrent request limiter rejected the request due to high load. Retry with backoff. |
publication_integrity_failure | 500 | Historical publication integrity failure | A cryptographic hash or manifest integrity check failed while reading an archive Parquet bundle. |
rate_limited | 429 | Rate limit exceeded | The client exceeded the configured per-IP rate limit. |
request_body_not_allowed | 400 | Request body is not allowed | GET requests to /v3 endpoints must not include a non-empty HTTP request body. |
request_canceled | 408 | Request was canceled | The client canceled the HTTP request context before completion. |
request_timeout | 504 | Request deadline was exceeded | The query exceeded the server's per-request execution deadline. |
request_too_large | 413 | Request exceeds maximum allowed size | The HTTP request body or URL exceeds the maximum permitted byte size. |
resource_limit | 422 | Query exceeds its work budget | The query required scanning more partitions or account subentries than permitted in a single request. |
route_not_found | 404 | Route was not found | The requested URL path does not match any registered Orion /v3 or Horizon route. |
service_unavailable | 503 | Service is temporarily unavailable | The server or an upstream dependency is temporarily unavailable. |
stale_cursor | 409 | Cursor bundle is no longer retained | The state snapshot referenced by the cursor has been superseded by a newer ledger snapshot. |
statistics_integrity_failure | 500 | Statistics dataset integrity failure | The statistics manifest or Parquet family checksum failed verification. |
statistics_metric_not_found | 404 | Statistics metric was not found | The requested metric slug does not exist. Query GET /v3/statistics for the full list of 47 available metrics. |
statistics_unavailable | 503 | Statistics dataset is unavailable | The statistics Parquet dataset is not currently mounted or reachable. |
stream_gap | 409 | Stream history contains a gap | The live SSE stream encountered a ledger gap and must be reconnected. |
transaction_not_found | 404 | Transaction was not found | No transaction with the given 64-character hex hash exists in ledger history. |
unsupported_media_type | 415 | Media type is not supported | The request Content-Type is not supported. |
unsupported_parameter | 400 | Query parameter is not supported | The request included an unknown query parameter that is not supported by this /v3 endpoint. |