Skip to main content
VectorAI DB uses standard transport status codes and the Python SDK maps them to typed exceptions. Catch specific exceptions when you can, and use VectorAIError as the application-level catch-all. SDK exceptions are in actian_vectorai.exceptions; retry helpers are is_retryable(error) and get_retry_delay(error).

Python SDK exceptions

Exception classTypical causeUseful fields
CollectionNotFoundErrorA collection does not existcollection_name, code, message
CollectionExistsErrorCreating a collection that already existscollection_name, code, message
ConnectionErrorServer is unavailable or the channel failedcode, message, details
ConnectionTimeoutErrorConnection attempt timed outaddress, timeout, code, message
RateLimitErrorServer rate limit or quota exceededretry_after, code, message
TimeoutErrorRPC deadline exceededtimeout, operation, code, message
UnimplementedErrorThe server does not implement the operationoperation, code, message
VectorAIErrorBase class for SDK errorscode, message, details, operation

Catch specific exceptions

from actian_vectorai import (
    CollectionNotFoundError,
    TimeoutError,
    UnimplementedError,
    VectorAIClient,
    VectorAIError,
    get_retry_delay,
    is_retryable,
)

query = [0.1] * 128

with VectorAIClient("localhost:6574") as client:
    try:
        results = client.points.search("products", vector=query, limit=10)
    except CollectionNotFoundError as error:
        print(f"Collection '{error.collection_name}' not found")
    except UnimplementedError as error:
        print(f"Operation '{error.operation}' is not supported by this server")
    except TimeoutError:
        print("Request timed out; try increasing the per-call timeout")
    except VectorAIError as error:
        if is_retryable(error):
            delay = get_retry_delay(error, attempt=1)
            print(f"Transient error, retry after {delay:.1f}s")
        else:
            raise

Create a collection idempotently

Catch CollectionExistsError to skip creation when a collection is already present.
from actian_vectorai import (
    CollectionExistsError,
    Distance,
    VectorAIClient,
    VectorParams,
)

with VectorAIClient("localhost:6574") as client:
    try:
        client.collections.create(
            "product-embeddings",
            vectors_config=VectorParams(size=1536, distance=Distance.Cosine),
        )
    except CollectionExistsError:
        pass

Retry transient failures

The helper functions understand SDK exception types, including ConnectionError, RateLimitError, and TimeoutError.
import time

from actian_vectorai import VectorAIError, get_retry_delay, is_retryable


def search_with_retry(client, collection_name, query_vector, limit=10, max_retries=3):
    for attempt in range(max_retries):
        try:
            return client.points.search(
                collection_name,
                vector=query_vector,
                limit=limit,
            )
        except VectorAIError as error:
            if not is_retryable(error) or attempt == max_retries - 1:
                raise
            time.sleep(get_retry_delay(error, attempt=attempt + 1))

Inspect error details

Every SDK exception exposes message, code, details, and operation where available. Use these fields for logging and custom handling.
from actian_vectorai import VectorAIError

try:
    client.points.search("products", vector=[0.1] * 128, limit=10)
except VectorAIError as error:
    print(f"Code:      {error.code}")
    print(f"Message:   {error.message}")
    print(f"Details:   {error.details}")
    print(f"Operation: {error.operation}")

Common error messages

Cause: The collection name is misspelled, or the collection was deleted.Fix: Call client.collections.list() to verify the collection exists before operating on it.
collections = client.collections.list()
print(collections)
Cause: The query vector or inserted vector has a different number of dimensions than the collection configuration.Fix: Confirm the embedding model and collection dimensions match.
Cause: The server has authentication enabled but the client did not supply a valid access token.Fix: Pass the configured token to VectorAIClient or set ACTIAN_VECTORAI_ACCESS_TOKEN.
Cause: VectorAI DB is not running, is still starting, or is unreachable at the configured address.Fix: Confirm the server is reachable at localhost:6574 or set ACTIAN_VECTORAI_URL.

Next steps

Troubleshooting

Diagnose connection, search, and startup issues.

Python SDK

Install and configure the Python SDK.