Question: ```
my $bucketname = "test";
my $bucket = $s3->add_bucket( { bucket => "$bucketname" } )
    or die $s3->err . ": " . $s3->errstr;

```

Running this code gives me this error.

> 
> BucketAlreadyExists: The requested bucket name is not available. The
>  bucket namespace is shared by all users of the system. Please select a
>  different name and try again.
> 
> 
> 

The bucket does not exist. I am not sure what's wrong.

Thanks

Answer: 
S3 buckets are a global namespace, and so it's very possible that someone else took the same bucket before you could get it. It's also possible that due to internal replication delays or other such issues, a previously-deleted bucket is not yet available for re-use.

In this particular case, `"test"` is a VERY generic bucket name. I'm sure everyone and their dog is trying to use it - and when I try LISTing it, I get a `AllAccessDisabled` error. It looks like the S3 team has disabled the `"test"` bucket specifically because too many people try to use it as their bucket name.

So, in short, you need to pick a *unique* bucket name - one that NOBODY else is using.
You'll have this error if the bucket name already exists (for you or for someone else) or if you have attempted to create more buckets than allowed (maximum is 100)

See documentation form more details:

<http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html>