Introduction
I manage multiple AWS accounts, and while taking inventory of S3 buckets and their creation dates across accounts with list-buckets, I noticed that the CreationDate returned by aws s3api list-buckets didn't match the actual bucket creation date shown in the S3 console.
I asked about this on AWS re:Post and got solid answers from the community.
Digging further, I found a GitHub Issue on aws-cli with information about this exact issue.
This article cross-references the re:Post answers with that Issue to lay out the cause and the workaround.
The Symptom: CreationDate Changes When Called from a Non-us-east-1 Region
Calling list-buckets against the same bucket returns a different CreationDate depending on which regional endpoint you use.
# Called via the ap-northeast-1 endpoint
aws s3api list-buckets --region ap-northeast-1 \
--query 'Buckets[?Name==`my-bucket`].CreationDate' --output text
# 2026-06-04T02:48:47+00:00
# Called via the us-east-1 endpoint
aws s3api list-buckets --region us-east-1 \
--query 'Buckets[?Name==`my-bucket`].CreationDate' --output text
# 2023-07-05T08:39:18+00:00
This bucket was created in ap-northeast-1, and the S3 console shows its creation date as July 5, 2023, 17:39:18 (UTC+09:00).
In other words, the us-east-1 result matches the console, while only the ap-northeast-1 result is off from the actual creation date.
The Cause: CreationDate Isn't the "Creation Date" — It's the "Last Replication Time in That Region"
The investigation revealed that the meaning of the CreationDate returned by list-buckets depends on which regional endpoint you call it from.
All S3 bucket creation operations appear to be mastered in us-east-1 and then replicated globally.
When you call list-buckets against an endpoint other than us-east-1, the CreationDate you get back isn't the actual creation date — it's the last replication time for that region (i.e., the timestamp of the most recent sync, such as a bucket policy change).
Only when you call the us-east-1 endpoint do you get the original creation date registered at the master. The S3 console also reads from the us-east-1 data, which is why the console date always matches the us-east-1 endpoint's result.
The aws-cli GitHub Issue includes the following explanation:
All bucket creations are mastered in us-east-1, then replicated on a global scale - the resulting difference is that there are no "replication" events to the us-east-1 region.
When using an endpoint other than us-east-1, the
CreationDateyou receive is actually the last modified time according to the bucket's last replication time in this region. This date can change when making changes to your bucket, such as editing its bucket policy.
Source: aws/aws-cli#3597
The official AWS documentation for the Bucket data type's CreationDate field also includes this line:
Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.
Source: Amazon S3 API Reference - Bucket
However, this sentence alone doesn't make it clear that the behavior varies by region — it's an easy detail for many users to miss.
I confirmed this myself: after editing a bucket policy, only the CreationDate returned via the ap-northeast-1 endpoint changed. Changing Block public access produced the same result.
It seems any bucket-level configuration change — not just bucket policy edits — can trigger this replication timestamp update.
# After the configuration change
aws s3api list-buckets --region ap-northeast-1 \
--query 'Buckets[?Name==`my-bucket`].CreationDate' --output text
# 2026-08-06T21:20:49+00:00
aws s3api list-buckets --region us-east-1 \
--query 'Buckets[?Name==`my-bucket`].CreationDate' --output text
# 2023-07-05T08:39:18+00:00
The Workaround: Explicitly Specify the us-east-1 Endpoint
To get the accurate creation date, explicitly call the API with --region us-east-1.
aws s3api list-buckets --region us-east-1 \
--query 'Buckets[?Name==`my-bucket`].CreationDate' --output text
This result matches the creation date shown in the S3 console.
Conclusion
The CreationDate returned by list-buckets has a quirk: calling it from any endpoint other than us-east-1 returns the last replication time for that region, not the actual bucket creation date.
If you need the accurate creation date, explicitly specify --region us-east-1.
I lost some time myself before figuring this out. I hope this article saves someone else from the same trap.
Thank you for reading this far!

Top comments (0)