BerriAI/litellm · error · ImportError

Missing botocore to call S3 Vectors. Run 'pip install boto3'

Error message

Missing botocore to call S3 Vectors. Run 'pip install boto3'.

What it means

Missing-dependency error in the S3 Vectors ingestion signer: botocore (shipped with boto3) is not installed, so SigV4Auth/AWSRequest cannot be imported to sign AWS API requests. Install boto3 and retry; no AWS call has been made yet.

Source

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

    async def _sign_and_execute_request(
        self,
        method: str,
        url: str,
        data: str | None = None,
        headers: dict[str, str] | None = None,
    ) -> Any:
        """
        Helper to sign and execute AWS API requests using httpx + SigV4.

        Pattern from litellm/integrations/s3_v2.py
        """
        try:
            import requests
            from botocore.auth import SigV4Auth
            from botocore.awsrequest import AWSRequest
        except ImportError:
            raise ImportError("Missing botocore to call S3 Vectors. Run 'pip install boto3'.")

        # Get AWS credentials using BaseAWSLLM's get_credentials method
        credentials: Final = self.get_credentials(
            aws_access_key_id=self.vector_store_config.get("aws_access_key_id"),
            aws_secret_access_key=self.vector_store_config.get("aws_secret_access_key"),
            aws_session_token=self.vector_store_config.get("aws_session_token"),
            aws_region_name=self.aws_region_name,
            aws_session_name=self.vector_store_config.get("aws_session_name"),
            aws_profile_name=self.vector_store_config.get("aws_profile_name"),
            aws_role_name=self.vector_store_config.get("aws_role_name"),
            aws_web_identity_token=self.vector_store_config.get("aws_web_identity_token"),
            aws_sts_endpoint=self.vector_store_config.get("aws_sts_endpoint"),
            aws_external_id=self.vector_store_config.get("aws_external_id"),
        )

        # Prepare headers
        if headers is None:
            headers = {}

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Install boto3 (which includes botocore): pip install boto3.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/rag/ingestion/s3_vectors_ingestion.py:204 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/c1db07d61c2b5665. Report an issue: GitHub.