I am trying to create an S3 bucket using
aws s3api create-bucket —bucket kubernetes-aws-wthamira-io
It gives this error:
An error occurred (IllegalLocationConstraintException) when calling
the CreateBucket operation: The unspecified location constraint is
incompatible for the region specific endpoint this request was sent
to.
I set the region using aws configure
to eu-west-1
Default region name [eu-west-1]:
but it gives the same error. How do I solve this?
I use osx terminal to connect aws
try this:
aws s3api create-bucket --bucket kubernetes-aws-wthamira-io --create-bucket-configuration LocationConstraint=eu-west-1
Regions outside of us-east-1
require the appropriate LocationConstraint
to be specified in order to create the bucket in the desired region.
https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html
You'll also get this error if you're trying to create a bucket with a name that's already been taken.
So try giving your bucket a more unique name and then it should work (I just added digits to the end of the bucket name).
Using mb solved the issue for us
aws s3 mb s3://storage.example.com --region us-west-1
I have seen many answers like the first one about "LocationConstraint". The answer is correct, but only covers half the case. I tried to include "LocationConstraint" to solve the problem but still got the same error. It's Omar Zairi's second answer gave me a clue.
The message here is in fact very confusing. When you are trying to create a bucket with a name that's already taken, only when your configured region is the same as the bucket with the already taken name's region, you receive the message "The requested bucket name is not available". Otherwise, you receive "location constraint is incompatible for the region specific endpoint this request was sent to".
To find if a name is already taken, and in case it's taken, which region the bucket with that name is in, look at the DNS record of "the-name.s3.amazonaws.com".
Below I use a taken name "test8765" to show what I mentioned above. Hope this helps whoever got confused like I did.
bing@bingstp:~$ dig test8765.s3.amazonaws.com
; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> test8765.s3.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39766
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;test8765.s3.amazonaws.com. IN A
;; ANSWER SECTION:
test8765.s3.amazonaws.com. 2016 IN CNAME s3-us-west-2-w.amazonaws.com.
s3-us-west-2-w.amazonaws.com. 5 IN A 52.218.216.10
;; Query time: 16 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Jan 03 15:16:11 AEDT 2019
;; MSG SIZE rcvd: 99
bing@bingstp:~$ aws s3api create-bucket --bucket test8765
An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.
bing@bingstp:~$ aws s3api create-bucket --bucket test8765 --create-bucket-configuration LocationConstraint=eu-west-1
An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The eu-west-1 location constraint is incompatible for the region specific endpoint this request was sent to.
bing@bingstp:~$ aws s3api create-bucket --bucket test8765 --create-bucket-configuration LocationConstraint=us-west-2
An error occurred (BucketAlreadyExists) when calling the CreateBucket operation: 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.
bing@bingstp:~$ aws s3api create-bucket --bucket test8765 --create-bucket-configuration LocationConstraint=us-west-1
An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The us-west-1 location constraint is incompatible for the region specific endpoint this request was sent to.
bing@bingstp:~$
Most of the suggestions listed above could be a reason for the IllegalLocationConstraintException
error to happen.
In my case, the same error happened and solved by creating a new bucket with the same region as that of the code I am working with.
For instance, if S3 bucket is created in us-east-1
region, your code e.g., the AWS SageMaker notebook instance
has to be also created from us-east-1
region.