# X_RPC_FAILED

## Means

an RPC call failed without a problem+json body

## Typical cause

**registered, thrown by nothing since 21.0.0.** Until then it was what a typed client answered for a gateway, a network fault, a non-JSON response, or a body whose `code` is not a framework code in `X_` SCREAMING_SNAKE form. All of those are `X_CLIENT_TRANSPORT_FAILED` now, from actions and queries alike. `RpcFailedError` stays exported, because a shipped code never changes meaning

## Fix

match `X_CLIENT_TRANSPORT_FAILED` instead: `isUltimateError(e) && e.code === 'X_CLIENT_TRANSPORT_FAILED'`, with `isUltimateError` from `@ultimat3/core`

[Actions](/error-codes#actions)
