# nodus.errors

> Errors raised by the Nodus SDK.

Source: https://www.nodus-compute.ai/docs/reference/python/nodus-errors/
Build revision: 3f2cb825a7aa0daaa9150df8ae7a28c39a5c1dfa

<!-- Generated by scripts/gen-reference.mjs from the SDK docstrings (griffe). Do not edit: run make gen. -->

Errors raised by the Nodus SDK.

Every error derives from `NodusError`. API errors map one-to-one onto the error-code registry (ADR-028): the class is chosen by the `metav1.Status` reason, so `except nodus.errors.InsufficientCredits` works the same for the CLI, the SDK and raw HTTP. Client-side failures are `APIConnectionError` and `APITimeoutError`; outcome errors are `JobFailed`, `AgentRunFailed`, `ImageBuildFailed`, `FunctionCallFailed` and `RemoteError`.

## Exports

* `APIConnectionError`: import with `from nodus.errors import APIConnectionError`
* `APITimeoutError`: import with `from nodus.errors import APITimeoutError`
* `AdmissionsPaused`: import with `from nodus.errors import AdmissionsPaused`
* `AgentRunFailed`: import with `from nodus.errors import AgentRunFailed`
* `AlreadyExists`: import with `from nodus.errors import AlreadyExists`
* `ArrearsOutstanding`: import with `from nodus.errors import ArrearsOutstanding`
* `BY_STATUS`: import with `from nodus.errors import BY_STATUS`
* `BadRequest`: import with `from nodus.errors import BadRequest`
* `BudgetExceeded`: import with `from nodus.errors import BudgetExceeded`
* `CapacityUnavailable`: import with `from nodus.errors import CapacityUnavailable`
* `Conflict`: import with `from nodus.errors import Conflict`
* `Expired`: import with `from nodus.errors import Expired`
* `FieldImmutable`: import with `from nodus.errors import FieldImmutable`
* `Forbidden`: import with `from nodus.errors import Forbidden`
* `FunctionCallFailed`: import with `from nodus.errors import FunctionCallFailed`
* `IdempotencyKeyReused`: import with `from nodus.errors import IdempotencyKeyReused`
* `ImageBuildFailed`: import with `from nodus.errors import ImageBuildFailed`
* `InsufficientCredits`: import with `from nodus.errors import InsufficientCredits`
* `Invalid`: import with `from nodus.errors import Invalid`
* `JobFailed`: import with `from nodus.errors import JobFailed`
* `NodusError`: import with `from nodus.errors import NodusError`
* `NotFound`: import with `from nodus.errors import NotFound`
* `PaymentDisputed`: import with `from nodus.errors import PaymentDisputed`
* `PaymentMethodRequired`: import with `from nodus.errors import PaymentMethodRequired`
* `PaymentVerificationUnavailable`: import with `from nodus.errors import PaymentVerificationUnavailable`
* `PreconditionFailed`: import with `from nodus.errors import PreconditionFailed`
* `QuotaExceeded`: import with `from nodus.errors import QuotaExceeded`
* `REGISTRY`: import with `from nodus.errors import REGISTRY`
* `RemoteError`: import with `from nodus.errors import RemoteError`
* `RequestInProgress`: import with `from nodus.errors import RequestInProgress`
* `SandboxStarting`: import with `from nodus.errors import SandboxStarting`
* `StdinBackpressure`: import with `from nodus.errors import StdinBackpressure`
* `TooManyRequests`: import with `from nodus.errors import TooManyRequests`
* `Unauthorized`: import with `from nodus.errors import Unauthorized`
* `Unavailable`: import with `from nodus.errors import Unavailable`
* `Unsupported`: import with `from nodus.errors import Unsupported`
* `UnsupportedMediaType`: import with `from nodus.errors import UnsupportedMediaType`
* `VolumeBusy`: import with `from nodus.errors import VolumeBusy`

## `from_status`

```python
from_status(http_status: int, body: Any, *, request_id: str | None = None, retry_after: float | None = None, idempotency_key: str | None = None) -> NodusError
```

Build the registry error for an HTTP error response whose body is a `metav1.Status` (or anything else).
