An Azure service that stores unstructured data in the cloud as blobs.
version.delete: Yes, the observed behaviour is consistent with version-level WORM. Versions with an active retention policy or legal hold cannot be deleted. Once protection expires and no legal hold exists, the version becomes deletable. However, the lifecycle documentation does not explicitly clarify this exception for immutable containers.
Deletion after expiry: Yes, a version skipped while retention is active can become eligible on a later lifecycle run after the policy expires. Deletion is not immediate because lifecycle processing is periodic and has no guaranteed completion SLA.
Future behaviour: There is currently no documented Microsoft commitment indicating that lifecycle deletion will be disabled for containers using version-level immutability. I would therefore avoid relying on the observed lifecycle behaviour as a compliance-critical guarantee.
tierToCool / tierToCold: Your observation is consistent with the documentation. The immutable-container lifecycle restriction specifically calls out Delete, while lifecycle tiering of previous versions is supported. The documentation, however, does not explicitly guarantee tiering behaviour for every actively protected version-level WORM scenario.
Bottom line: The behaviour you see makes sense for version-level WORM, but Microsoft’s lifecycle documentation is ambiguous about version.delete after retention expiry.
Help make this community better for everyone: if this answer resolved your issue, please accept it or leave an upvote. If not, share more details in a comment so we can continue the discussion and find the right solution