Generally, it is a good idea to avoid explicitly providing physical names for resources you create with CDK.
The documentation explains the reasoning:
Assigning physical names to resources has some disadvantages in AWS CloudFormation. Most importantly, any changes to deployed resources that require a resource replacement, such as changes to a resource's properties that are immutable after creation, will fail if a resource has a physical name assigned. If you end up in that state, the only solution is to delete the AWS CloudFormation stack, then deploy the AWS CDK app again. See the AWS CloudFormation documentation for details.
So if you introduce a change that requires your bucket to be replaced, you'll see the aforementioned error.
In your specific case, it is probably an S3-specific issue that bucket names are globally unique - across all accounts and regions, as stated by @Omar Rosadio in the comments. This makes naming your buckets yourself an especially bad idea.
If you don't pass the bucketName
property when creating the bucket, CDK will generate a unique name for you, so you don't have to worry about this, and I suggest doing so.