{"record":{"id":"8fe80a8479c21001","repo":"remotion-dev/remotion","slug":"invalid-s3-client-parameters-for-create-bucket-e","errorCode":null,"errorMessage":"Invalid S3 client parameters for create_bucket: {e}","messagePattern":"Invalid S3 client parameters for create_bucket: (.+?)","errorType":"exception","errorClass":"RemotionInvalidArgumentException","httpStatus":null,"severity":"error","filePath":"packages/lambda-python/remotion_lambda/remotionclient.py","lineNumber":354,"sourceCode":"        if len(buckets) == 1:\n            return buckets[0]\n\n        bucket_name = self._make_bucket_name()\n        s3_client = self._create_s3_client()\n\n        try:\n            if self.region == REGION_US_EAST:\n                s3_client.create_bucket(Bucket=bucket_name)\n            else:\n                s3_client.create_bucket(\n                    Bucket=bucket_name,\n                    CreateBucketConfiguration={'LocationConstraint': self.region},\n                )\n            return bucket_name\n        except ClientError as e:\n            raise e\n        except ParamValidationError as e:\n            raise RemotionInvalidArgumentException(\n                f\"Invalid S3 client parameters for create_bucket: {e}\"\n            ) from e\n\n    def _upload_to_s3(self, bucket_name: str, key: str, payload: str) -> None: # Added type hints\n        \"\"\"Upload payload to S3.\"\"\"\n        s3_client = self._create_s3_client()\n        try:\n            s3_client.put_object(\n                Bucket=bucket_name,\n                Key=key,\n                Body=payload,\n                ContentType='application/json',\n            )\n        except ClientError as e:\n            raise e\n        except ParamValidationError as e:\n            raise RemotionInvalidArgumentException(\n                f\"Invalid S3 client parameters for put_object: {e}\"","sourceCodeStart":336,"sourceCodeEnd":372,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/lambda-python/remotion_lambda/remotionclient.py#L336-L372","documentation":"Raised when boto3 rejects the parameters to create_bucket with a ParamValidationError before the API call. Distinguished from ClientError (permissions, bucket already owned, etc.) which is re-raised unchanged. Indicates a malformed parameter shape, typically the bucket name.","triggerScenarios":"Triggered by _get_or_create_bucket when no existing remotionlambda- bucket is found and the auto-generated name (_make_bucket_name) is invalid (None, empty, too long, contains invalid characters), or the S3 client itself was constructed with bad parameters.","commonSituations":"Region string malformed so the bucket-name generator produces an invalid name; CI environment overriding region; monkey-patched _make_bucket_name in tests returning None; corrupted session producing a bad S3 client.","solutions":["Inspect __cause__ (the ParamValidationError) to see which parameter failed validation.","Verify the configured region is a valid AWS region identifier (e.g. 'us-east-1').","Confirm _make_bucket_name returns a string between 3 and 63 chars matching ^[a-z0-9][a-z0-9.-]*[a-z0-9]$.","Recreate the boto3 Session with valid credentials and region_name set."],"exampleFix":"// before\nclient = RemotionClient(region='invalid-region', serve_url=..., function_name=...)\nclient.renderMedia(...)  # _make_bucket_name yields invalid name\n\n# after\nclient = RemotionClient(region='us-east-1', serve_url=..., function_name=...)\nclient.renderMedia(...)","handlingStrategy":"try-catch","validationCode":"AWS_REGION_RE = re.compile(r'^[a-z]{2}-[a-z]+-\\d+$')\ndef valid_region_for_bucket(region: str) -> str:\n    if not region or not AWS_REGION_RE.match(region):\n        raise ValueError(f'invalid region for bucket creation: {region!r}')\n    return region","typeGuard":"def is_aws_region(value) -> bool:\\n    return isinstance(value, str) and bool(re.match(r'^[a-z]{2}-[a-z]+-\\d+$', value))","tryCatchPattern":"try:\\n    client.render_media(...)\\nexcept RemotionInvalidArgumentException as e:\\n    log.error('create_bucket param error: %s', e.__cause__)\\n    raise","preventionTips":["Pass a valid AWS region identifier to the constructor.","Use a valid boto3 Session so the internal S3 client is correctly configured.","Do not override _make_bucket_name with non-S3-compliant values."],"tags":["python","s3","validation","bucket","aws-sdk"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}