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 must be at least 3 characters long. 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 must be at least 3 characters long. 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:268
method_upper: Final = method.upper()
if method_upper == "PUT":
response = await self.async_httpx_client.put(url, data=data, headers=signed_headers)
elif method_upper == "POST":
response = await self.async_httpx_client.post(url, data=data, headers=signed_headers)
elif method_upper == "GET":
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:View on GitHub (pinned to 77b7c6c40c)
Solutions
- Use a bucket name at least 3 characters long, e.g. 'my-vector-bucket'.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at litellm/rag/ingestion/s3_vectors_ingestion.py:268 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/89c01b46320376f1.
Report an issue: GitHub.