BerriAI/litellm · error · ValueError

vector_store_id must be in format 'bucket_name:index_name' f

Error message

vector_store_id must be in format 'bucket_name:index_name' for S3 Vectors, or vector_bucket_name must be provided in litellm_params

What it means

Search request guard: the vector_store_id lacks the required 'bucket_name:index_name' form and no vector_bucket_name in litellm_params allows reconstructing it, so the S3 Vectors index cannot be addressed.

Source

Thrown at litellm/llms/s3_vectors/vector_stores/transformation.py:90

        vector_store_search_optional_params: VectorStoreSearchOptionalRequestParams,
        api_base: str,
        litellm_logging_obj: LiteLLMLoggingObj,
        litellm_params: dict,
        extra_body: dict[str, Any] | None = None,
    ) -> tuple[str, dict]:
        """Sync version - generates embedding synchronously."""
        # For S3 Vectors, vector_store_id should be in format: bucket_name:index_name
        # If not in that format, try to construct it from litellm_params
        bucket_name: str
        index_name: str

        if ":" in vector_store_id:
            bucket_name, index_name = vector_store_id.split(":", 1)
        else:
            # Try to get bucket_name from litellm_params
            bucket_name_from_params: Final = litellm_params.get("vector_bucket_name")
            if not bucket_name_from_params or not isinstance(bucket_name_from_params, str):
                raise ValueError(
                    "vector_store_id must be in format 'bucket_name:index_name' for S3 Vectors, "
                    "or vector_bucket_name must be provided in litellm_params"
                )
            bucket_name = bucket_name_from_params
            index_name = vector_store_id

        if isinstance(query, list):
            query = " ".join(query)

        # Generate embedding for the query
        embedding_model: Final = litellm_params.get("embedding_model", "text-embedding-3-small")

        import litellm as litellm_module

        embedding_response: Final = litellm_module.embedding(model=embedding_model, input=[query])
        query_embedding: Final = embedding_response.data[0]["embedding"]

        url: Final = f"{api_base}/QueryVectors"

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Format vector_store_id as 'bucket_name:index_name'.
  2. Or provide vector_bucket_name in litellm_params.

Example fix

vector_store_id="my-bucket:my-index"
Defensive patterns

Strategy: validation

When it happens

Trigger: Triggered when vector_store_id is not in 'bucket_name:index_name' format and vector_bucket_name is not provided in litellm_params.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/c018bce0a94b7873. Report an issue: GitHub.