> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/aistore/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/aistore/_mcp/server.

# aistore.sdk.errors

## Module Contents

### Classes

| Name                                                                           | Description                                                                                                          |
| ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| [`AISError`](#aistore-sdk-errors-AISError)                                     | Raised when an error is encountered from a query to the AIS cluster                                                  |
| [`AISRetryableError`](#aistore-sdk-errors-AISRetryableError)                   | Exception raised for AIStore related errors that may resolve by retrying.                                            |
| [`APIRequestError`](#aistore-sdk-errors-APIRequestError)                       | Base class for errors from HTTP servers, e.g. AIS or AuthN                                                           |
| [`ETLDirectPutTransientError`](#aistore-sdk-errors-ETLDirectPutTransientError) | Raised when a direct-put from an ETL pod fails with a transient network error                                        |
| [`ErrBckAlreadyExists`](#aistore-sdk-errors-ErrBckAlreadyExists)               | Raised when a bucket is created but already exists in AIS                                                            |
| [`ErrBckNotFound`](#aistore-sdk-errors-ErrBckNotFound)                         | Raised when a bucket is expected and not found                                                                       |
| [`ErrETLAlreadyExists`](#aistore-sdk-errors-ErrETLAlreadyExists)               | Raised when an ETL is created but already exists in AIS                                                              |
| [`ErrETLNotFound`](#aistore-sdk-errors-ErrETLNotFound)                         | Raised when an ETL is expected but not found                                                                         |
| [`ErrGETConflict`](#aistore-sdk-errors-ErrGETConflict)                         | Raised when AIS cannot obtain a write lock because another process is currently writing this object to local storage |
| [`ErrObjNotFound`](#aistore-sdk-errors-ErrObjNotFound)                         | Raised when an object is expected and not found                                                                      |
| [`ErrRemoteBckNotFound`](#aistore-sdk-errors-ErrRemoteBckNotFound)             | Raised when a remote bucket its required and missing for the requested operation                                     |
| [`InvalidBckProvider`](#aistore-sdk-errors-InvalidBckProvider)                 | Raised when the bucket provider is invalid for the requested operation                                               |
| [`InvalidObjectRangeIndex`](#aistore-sdk-errors-InvalidObjectRangeIndex)       | Raised when incorrect range parameters are passed when creating an ObjectRange                                       |
| [`InvalidPipelineError`](#aistore-sdk-errors-InvalidPipelineError)             | Raised when an ETL pipeline header is malformed or invalid.                                                          |
| [`InvalidURLException`](#aistore-sdk-errors-InvalidURLException)               | Raised when the URL is invalid or any part of it is missing.                                                         |
| [`JobInfoNotFound`](#aistore-sdk-errors-JobInfoNotFound)                       | Raised when information on a job's status could not be found on the AIS cluster                                      |
| [`NoTargetError`](#aistore-sdk-errors-NoTargetError)                           | Raised when attempting to select a target for an object, but none were found in cluster map                          |
| [`Timeout`](#aistore-sdk-errors-Timeout)                                       | Raised when an operation takes too long to complete                                                                  |
| [`UnexpectedHTTPStatusCode`](#aistore-sdk-errors-UnexpectedHTTPStatusCode)     | Raised when the status code from a response is not what's expected.                                                  |

### API

```python
class aistore.sdk.errors.AISError()
```

**Bases:** [APIRequestError](#aistore-sdk-errors-APIRequestError)

Raised when an error is encountered from a query to the AIS cluster

```python
class aistore.sdk.errors.AISRetryableError()
```

**Bases:** [AISError](#aistore-sdk-errors-AISError)

Exception raised for AIStore related errors that may resolve by retrying.

```python
class aistore.sdk.errors.APIRequestError(
    status_code: int,
    message: str,
    req_url: str,
    req: requests.PreparedRequest
)
```

Exception

**Bases:** `Exception`

Base class for errors from HTTP servers, e.g. AIS or AuthN

```python
class aistore.sdk.errors.ETLDirectPutTransientError(
    url: str,
    cause: Exception,
    bail_without_local_retry: bool = False
)
```

Exception

**Bases:** `Exception`

Raised when a direct-put from an ETL pod fails with a transient network error
that is safe to retry (connection lost before a response was received).

AIS-side retry contract: when the ETL bails *without* trying locally —
i.e., the source body is one-shot (the streaming no-FQN PUT path) —
`bail_without_local_retry` is set to `True` and the webserver responds
with HTTP 503 and the `Ais-Etl-Retry-Reason: direct-put-transient`
header. AIS treats that pair as a soft error and retries the whole PUT
against the replayable LOM-backed source. When `bail_without_local_retry`
is `False` (the ETL exhausted its own retry budget), the webserver
continues to respond with HTTP 502 — adding more retries on top would
just be amplification.

```python
class aistore.sdk.errors.ErrBckAlreadyExists()
```

**Bases:** [AISError](#aistore-sdk-errors-AISError)

Raised when a bucket is created but already exists in AIS

```python
class aistore.sdk.errors.ErrBckNotFound()
```

**Bases:** [AISError](#aistore-sdk-errors-AISError)

Raised when a bucket is expected and not found

```python
class aistore.sdk.errors.ErrETLAlreadyExists()
```

**Bases:** [AISError](#aistore-sdk-errors-AISError)

Raised when an ETL is created but already exists in AIS

```python
class aistore.sdk.errors.ErrETLNotFound()
```

**Bases:** [AISError](#aistore-sdk-errors-AISError)

Raised when an ETL is expected but not found

```python
class aistore.sdk.errors.ErrGETConflict()
```

**Bases:** [AISRetryableError](#aistore-sdk-errors-AISRetryableError)

Raised when AIS cannot obtain a write lock because another process is currently writing this object to local storage

```python
class aistore.sdk.errors.ErrObjNotFound()
```

**Bases:** [AISRetryableError](#aistore-sdk-errors-AISRetryableError)

Raised when an object is expected and not found

```python
class aistore.sdk.errors.ErrRemoteBckNotFound()
```

**Bases:** [AISError](#aistore-sdk-errors-AISError)

Raised when a remote bucket its required and missing for the requested operation

```python
class aistore.sdk.errors.InvalidBckProvider(
    provider
)
```

Exception

**Bases:** `Exception`

Raised when the bucket provider is invalid for the requested operation

```python
class aistore.sdk.errors.InvalidObjectRangeIndex(
    message
)
```

Exception

**Bases:** `Exception`

Raised when incorrect range parameters are passed when creating an ObjectRange

```python
class aistore.sdk.errors.InvalidPipelineError()
```

**Bases:** `ValueError`

Raised when an ETL pipeline header is malformed or invalid.

```python
class aistore.sdk.errors.InvalidURLException(
    url
)
```

Exception

**Bases:** `Exception`

Raised when the URL is invalid or any part of it is missing.

```python
class aistore.sdk.errors.JobInfoNotFound(
    message
)
```

Exception

**Bases:** `Exception`

Raised when information on a job's status could not be found on the AIS cluster

```python
class aistore.sdk.errors.NoTargetError(
    total_nodes: int
)
```

Exception

**Bases:** `Exception`

Raised when attempting to select a target for an object, but none were found in cluster map

```python
class aistore.sdk.errors.Timeout(
    action,
    message = ''
)
```

Exception

**Bases:** `Exception`

Raised when an operation takes too long to complete

```python
class aistore.sdk.errors.UnexpectedHTTPStatusCode(
    expected_status_codes,
    received_status_code
)
```

Exception

**Bases:** `Exception`

Raised when the status code from a response is not what's expected.