{"record":{"id":"d5e586d599b003ea","repo":"crewAIInc/crewAI","slug":"s3-bucket-name-not-configured-set-crewai-bedrock","errorCode":null,"errorMessage":"S3 bucket name not configured. Set CREWAI_BEDROCK_S3_BUCKET environment variable or pass bucket_name parameter.","messagePattern":"S3 bucket name not configured\\. Set CREWAI_BEDROCK_S3_BUCKET environment variable or pass bucket_name parameter\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"lib/crewai-files/src/crewai_files/uploaders/bedrock.py","lineNumber":148,"sourceCode":"            \"CREWAI_BEDROCK_S3_BUCKET_OWNER\"\n        )\n        self._prefix = prefix\n        self._region = region or os.environ.get(\n            \"AWS_REGION\", os.environ.get(\"AWS_DEFAULT_REGION\")\n        )\n        self._client: Any = client\n        self._async_client: Any = async_client\n\n    @property\n    def provider_name(self) -> str:\n        \"\"\"Return the provider name.\"\"\"\n        return \"bedrock\"\n\n    @property\n    def bucket_name(self) -> str:\n        \"\"\"Return the configured bucket name.\"\"\"\n        if not self._bucket_name:\n            raise ValueError(\n                \"S3 bucket name not configured. Set CREWAI_BEDROCK_S3_BUCKET \"\n                \"environment variable or pass bucket_name parameter.\"\n            )\n        return self._bucket_name\n\n    @property\n    def bucket_owner(self) -> str | None:\n        \"\"\"Return the configured bucket owner.\"\"\"\n        return self._bucket_owner\n\n    def _get_client(self) -> Any:\n        \"\"\"Get or create the S3 client.\"\"\"\n        if self._client is None:\n            try:\n                import boto3\n\n                self._client = boto3.client(\"s3\", region_name=self._region)\n            except ImportError as e:","sourceCodeStart":130,"sourceCodeEnd":166,"githubUrl":"https://github.com/crewAIInc/crewAI/blob/754d7323beb2fd042e33444a115ea2d5a47193f0/lib/crewai-files/src/crewai_files/uploaders/bedrock.py#L130-L166","documentation":"ValueError raised by the Bedrock uploader's bucket_name property: no S3 bucket was supplied via constructor argument and the CREWAI_BEDROCK_S3_BUCKET environment variable is unset/empty. Bedrock uploads stage files in S3, so the bucket is mandatory; any access to bucket_name (including during upload) raises immediately.","triggerScenarios":"Constructing BedrockFileUploader without bucket_name in an environment where CREWAI_BEDROCK_S3_BUCKET is not set, then calling upload/async_upload; or setting the variable in a shell but not in the process (systemd unit, container, cron) that runs the app.","commonSituations":"Env var configured locally but missing in Docker/CI/production; name typo in the variable; .env file not loaded before uploader construction; assuming Bedrock needs no bucket like OpenAI/Anthropic uploaders do.","solutions":["Pass bucket_name explicitly: BedrockFileUploader(bucket_name='my-bucket', region_name=...).","Export CREWAI_BEDROCK_S3_BUCKET=my-bucket in the process environment (and load .env before constructing the uploader).","Add a startup assertion: read uploader.bucket_name once during wiring so misconfiguration fails fast."],"exampleFix":"# before\nuploader = BedrockFileUploader(region_name='us-east-1')\nuploader.upload(file)  # ValueError: S3 bucket name not configured\n\n# after\nuploader = BedrockFileUploader(\n    bucket_name='my-bedrock-uploads',\n    region_name='us-east-1',\n)\nuploader.upload(file)","handlingStrategy":"validation","validationCode":"import os\n\nbucket = os.environ.get(\"CREWAI_BEDROCK_S3_BUCKET\")\nif not bucket:\n    raise RuntimeError(\"set CREWAI_BEDROCK_S3_BUCKET or pass bucket_name\")\nuploader = BedrockFileUploader(bucket_name=bucket, region_name=os.environ[\"AWS_REGION\"])\n_ = uploader.bucket_name  # fail fast if still unconfigured","typeGuard":null,"tryCatchPattern":"try:\n    uploader.upload(file)\nexcept ValueError as e:\n    if \"S3 bucket\" in str(e):\n        raise RuntimeError(\"Bedrock uploads need a bucket; check env/constructor\") from e\n    raise","preventionTips":["Always pass bucket_name explicitly in code instead of relying on ambient env vars.","Load .env before constructing the uploader (e.g. dotenv.load_dotenv() at entry point).","Assert bucket_name once during app startup."],"tags":["configuration","bedrock","s3","environment-variable","file-upload"],"backgroundTag":null,"analyzedSha":"754d7323beb2fd042e33444a115ea2d5a47193f0","analyzedAt":"2026-08-15T04:06:56.746Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}