A company configures an S3 Lifecycle rule in 2026 on a bucket containing millions of small JSON event files, most only a few KB each, to transition all objects to S3 Glacier Flexible Retrieval after 30 days. After the rule runs, the company notices that the small objects are still in S3 Standard while larger objects transitioned as expected. What is the most likely explanation, given S3's current default lifecycle behaviour?
- Lifecycle rules never apply to JSON files regardless of size
- By default, S3 Lifecycle does not transition objects smaller than 128 KB to any storage class unless the rule includes an object size filter allowing smaller objects
- Objects smaller than 128 KB are automatically deleted instead of transitioned
- Lifecycle transitions only work on buckets without versioning enabled
Why B? And why not the others?
Correct answer: B. By default, S3 Lifecycle does not transition objects smaller than 128 KB to any storage class unless the rule includes an object size filter allowing smaller objects
Since Amazon S3 updated its default Lifecycle transition behaviour, objects smaller than 128 KB are not transitioned to any storage class by default, because the per-object transition request cost can outweigh the storage savings for very small objects; a rule author must add an object size filter allowing smaller objects if they actually want those objects to transition. This default behaviour, not any restriction based on file type, fully explains why the small JSON files stayed in S3 Standard while larger objects transitioned normally under the same rule. Lifecycle rules are not restricted by file format or extension at all, so a blanket claim that JSON is excluded is incorrect. Objects that fail to meet transition criteria are simply left alone in their current storage class; S3 does not delete objects instead of transitioning them unless an expiration action is separately configured. Lifecycle transitions work on both versioned and unversioned buckets, so the presence of versioning is not the explanation here.
Source: AWS S3 docs: Transitioning objects using Amazon S3 Lifecycle — constraints and considerations