# Errors reference

> Every exception the SDK throws.

Source: https://docs.stxapp.io/sdks/csharp/reference/errors/

```text
STXException                      Message, StatusCode, Body, Method, Path, ErrorCode
├── STXConfigException            misconfiguration: no host, no key, bad PEM
├── STXTransportException         no response: connection, DNS, TLS, timeout
├── STXApiException               an error status
│   ├── STXValidationException            400
│   ├── STXAuthenticationException        401
│   │   └── STXInvalidTokenException      401 on an OAuth token
│   ├── STXForbiddenException             403 (RequiredScopes)
│   │   ├── STXInsufficientScopeException
│   │   ├── STXIpNotAllowedException
│   │   └── STXTermsRequiredException     (TermsUrl)
│   ├── STXNotFoundException              404
│   ├── STXRejectedException              422
│   ├── STXRateLimitException             429 (RetryAfter)
│   └── STXServerException                5xx
├── STXChannelException           a refused or unanswered join or command (Topic, Reply, Reason)
│   └── STXComboException                 (Command, ComboReason, Detail, RawReason)
│       └── STXComboPriceMovedException   (BestQuote)
└── STXNotAvailableException      a feature this exchange lacks (Feature, Host)
    └── STXChannelUnavailableException    a channel it lacks (Topic, Reply)
        └── STXCombosUnavailableException
```

`Body` is the response JSON (a `JsonNode`), and `ErrorCode` its `error` string. See [Errors & retries](/sdks/csharp/errors-and-retries/) for what the client retries.
