Old object versions cost the same as live ones
On a versioned bucket, every previous copy is billed at full price. You can now move them to a cheaper class instead of deleting them — and the Savings Finder tells you what that is worth.
Turn versioning on and S3 keeps every previous copy of every object. Those copies are billed exactly like live files, they appear in no listing, and nothing in most tooling shows you they are there.
Tier them, don't just delete them
The lifecycle editor could already expire noncurrent versions — permanently delete them after N days. It can now transition them instead: move them to a cheaper storage class and keep them. Current files are untouched, nothing is destroyed, and the class can be changed later.
Only the destructive option existed before. If you wanted to spend less on old versions, the only button on offer was the one that threw them away.
The Savings Finder can see them now
A new recommendation reports what your noncurrent versions are costing across every versioned bucket, and applies the rule to the buckets you choose. It writes a separate lifecycle rule from the cold-data one, so tiering old versions never quietly rewrites what you set for live files.
Rules that could never have worked are now refused
S3 accepts a lifecycle rule that it will then silently never act on — moving objects to a class their current class cannot reach. There is no error and no event; the rule simply sits there doing nothing, and the only clue is a bill that does not fall. BucketPilot now checks the destination against the classes your bucket actually holds and refuses the rule with the reason, and the rule simulator says *"S3 will not perform this"* instead of *"0 objects eligible"* — which reads as *"nothing is old enough yet"*.
And editing a rule no longer drops the parts we don't show
Saving a lifecycle rule replaces the whole configuration on the bucket. Clauses the editor did not display — date-based transitions, expired-delete-marker cleanup, object-size filters — were being lost when you edited something unrelated. They are now carried through untouched.
You can also set abort incomplete multipart uploads from the same screen. A failed upload leaves its parts behind, they are charged as storage, and they appear in no object listing — so nothing else could show them to you.