Skip to content
LogoLogo

Error Handling

Every /v2 failure returns a structured problem detail object conforming to RFC 9457, with the application/problem+json content type. This makes errors machine-readable and consistent across every endpoint, the auth gate, and framework failures.

Problem Detail Fields

FieldTypePresentDescription
typestringAlwaysA URI that identifies the problem type. Stable across environments.
titlestringAlwaysA short, human-readable summary of the problem type.
statusnumberAlwaysThe HTTP status code.
detailstringAlwaysA human-readable explanation specific to this occurrence.
instancestringAlwaysThe absolute URL of the failed request, with the /v2 mount prefix and no query string.
correlationIdstringAlwaysA ULID that identifies this request. It matches the Correlation-Id response header.
detailsobjectOptionalDomain fields for the condition, for example id, field, chainId, or keyEnv.
{
  "type": "https://docs.mure.app/problems/transfer-not-found",
  "title": "Transfer not found",
  "status": 404,
  "detail": "Transfer with ID int_transfer_01HT... not found",
  "instance": "https://api.mure.app/v2/transfers/int_transfer_01HT...",
  "correlationId": "01J0000000000000000000000A",
  "details": { "id": "int_transfer_01HT..." }
}

Problem types

type is always https://docs.mure.app/problems/<slug>. The value is the same in sandbox, production, and local: it identifies the problem type, not the failed request. Each URI resolves to a page under Problems.

SlugStatusMeaning
bad-request400The request could not be parsed or contained an invalid payload.
missing-api-key401No API key was supplied.
invalid-api-key403The supplied API key is not valid.
chain-not-allowed-for-key-environment403The chain is not allowed for the API key's environment.
rate-limited429Too many requests.
route-not-found404No route matched the request.
transfer-not-found404The requested transfer does not exist.
validation-failed422The request failed domain validation.
transfer-service-failure500The transfer could not be completed.
token-registry-service-failure500The token registry could not be read.
upstream-failure503An upstream dependency failed.
internal-error500An unexpected server-side error occurred.

Correlation

Every response carries a Correlation-Id header. When a problem body is present, its correlationId equals the header. Server-side logs use the same value. Include it when you contact support.

HTTP Status Codes

StatusMeaningTypical Scenarios
400Bad RequestMalformed JSON or a payload that fails schema validation.
401UnauthorizedMissing api-key header.
403ForbiddenInvalid API key, or the key's environment does not match the requested chain.
404Not FoundThe route does not exist, or the resource does not exist for the given ID.
422Unprocessable ContentDomain validation failure.
429Too Many RequestsRate limit exceeded. Honor the Retry-After header value.
500Internal Server ErrorUnexpected server-side failure. Contact support if persistent.
503Service UnavailableAn upstream dependency failed. Honor the Retry-After header value.