BerriAI/litellm · error · ValueError

Invalid vector_bucket_name '{self.vector_bucket_name}': AWS

Error message

Invalid vector_bucket_name '{self.vector_bucket_name}': AWS S3 bucket names can only contain lowercase letters, numbers, hyphens, and periods. Please provide a valid bucket name (e.g., 'my-vector-bucket').

What it means

Error "Invalid vector_bucket_name '{self.vector_bucket_name}': AWS S3 bucket names can only contain lowercase letters, numbers, hyphens, and periods. Please provide a valid bucket name (e.g., 'my-vector-bucket')." thrown in BerriAI/litellm.

Source

Thrown at litellm/rag/ingestion/s3_vectors_ingestion.py:274

            response = await self.async_httpx_client.get(url, headers=signed_headers)
        else:
            raise ValueError(f"Unsupported HTTP method: {method}")

        return response

    async def _ensure_vector_bucket_exists(self):
        """Create vector bucket if it doesn't exist using GetVectorBucket and CreateVectorBucket APIs."""
        verbose_logger.debug("Ensuring S3 vector bucket exists: %s", self.vector_bucket_name)

        # Validate bucket name (AWS S3 naming rules)
        if len(self.vector_bucket_name) < 3:
            raise ValueError(
                f"Invalid vector_bucket_name '{self.vector_bucket_name}': "
                f"AWS S3 bucket names must be at least 3 characters long. "
                f"Please provide a valid bucket name (e.g., 'my-vector-bucket')."
            )
        if not self.vector_bucket_name.replace("-", "").replace(".", "").isalnum():
            raise ValueError(
                f"Invalid vector_bucket_name '{self.vector_bucket_name}': "
                f"AWS S3 bucket names can only contain lowercase letters, numbers, hyphens, and periods. "
                f"Please provide a valid bucket name (e.g., 'my-vector-bucket')."
            )

        # Try to get bucket info using GetVectorBucket API
        get_url: Final = f"https://s3vectors.{self.aws_region_name}.api.aws/GetVectorBucket"
        get_body: Final = safe_dumps({"vectorBucketName": self.vector_bucket_name})

        try:
            response: httpx.Response = await self._sign_and_execute_request("POST", get_url, data=get_body)
            if response.status_code == 200:
                verbose_logger.debug("Vector bucket %s exists", self.vector_bucket_name)
                return
        except Exception as e:
            verbose_logger.debug("Bucket check failed (may not exist): %s, attempting to create", e)

        # Create vector bucket using CreateVectorBucket API

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use only lowercase letters, numbers, hyphens, and periods in the bucket name.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/rag/ingestion/s3_vectors_ingestion.py:274 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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