# Unmanaged Blob Versions and Soft-Deleted Data Accumulation

Canonical: https://www.pointfive.co/efficiency-hub/inefficiencies/unmanaged-blob-versions-and-soft-deleted-data-accumulation

Blob versioning and blob soft delete are part of Microsoft's recommended data protection configuration, so they are often switched on for every storage...

By: PointFive

Updated: 2026-09-28

[Cloud Efficiency Hub](https://www.pointfive.co/efficiency-hub) 

The short version

Blob versioning and blob soft delete are part of Microsoft's recommended data protection configuration, so they are often switched on for every storage account.

PointFive Research

Cloud cost research at PointFive

Azure service

[Azure Blob Storage](https://www.pointfive.co/efficiency-hub/cloud-services/azure-blob-storage)

Category

[Storage](https://www.pointfive.co/efficiency-hub/service-category/storage)

Reference

CER-0431

Type

Excessive Data Retention

## Explanation

Why the waste happens and who it affects.

With versioning enabled, every write to a blob (Put Blob, Put Block List, Copy Blob, Set Blob Metadata) turns the current version into a previous version, and deleting a blob keeps all its previous versions. Previous versions are not removed when the soft-delete retention period expires; they persist until they are deleted explicitly or by a lifecycle management rule. With soft delete alone, every overwrite creates a hidden soft-deleted snapshot that is kept for the retention period.

None of this is visible in a normal blob listing, so capacity grows while the live data set looks unchanged. The effect is largest for data that is overwritten frequently, such as checkpoints, exports rewritten on a schedule, and application state files uploaded with Put Blob, where each version can hold a complete copy. Microsoft's Well-Architected guidance calls out versioning and soft delete as features that add capacity cost and recommends lifecycle rules for old versions and a separate account for frequently overwritten data.

## Billing model

The pricing dimensions that drive this cost.

Previous versions and snapshots

Billed at the same rate as active data for as long as they exist

Unique-block billing

Without an explicitly set tier, you pay for unique blocks across a blob and its versions; a full Put Blob overwrite makes every block unique

Explicitly tiered version

A version or blob whose tier is set explicitly is billed at its full content length

Soft-deleted data

Billed at the same rate as live data until the retention period of 1 to 365 days expires

## How to detect

5 checks to find it in your estate.

- Run a blob inventory report with includeBlobVersions, includeSnapshots and includeDeleted set to true and the VersionId, IsCurrentVersion, Snapshot, Deleted and Content-Length fields, then sum capacity for previous versions, snapshots and deleted blobs against current versions

- List storage accounts with blob versioning enabled (isVersioningEnabled on the blob service properties) that have no lifecycle management rule with a version or snapshot delete action

- Review the soft delete retention period on each account; long retention on accounts with frequently overwritten data multiplies retained capacity

- Watch for capacity growth in Storage insights or the account's Blob Capacity metric that outpaces growth in current data

- Check whether applications still take manual blob snapshots on accounts where versioning is already enabled

## How to fix

5 ways to remove the waste.

- Add lifecycle management rules that delete previous versions (and snapshots) a set number of days after they were created, or move them to Cool, Cold or Archive before deletion; lifecycle delete operations are free, while tier changes are billed as Set Blob Tier operations

- Move frequently overwritten data to a separate storage account with versioning and soft delete disabled, as Microsoft recommends

- Set the soft delete retention period to what recovery actually needs; Microsoft suggests starting short, with seven days as the minimum recommended value

- Stop taking manual snapshots of block blobs once versioning is enabled, since they add cost without extra protection

- Prefer Put Block and Put Block List for partial updates of large blobs so fewer blocks become unique, and note that lifecycle deletes in soft-delete-enabled accounts leave data soft-deleted until the retention period ends

## Documentation

Vendor references for pricing and configuration.

- [Blob Versioning in Azure Storage  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/storage/blobs/versioning-overview)

- [Soft Delete for Blobs to Recover Data  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/storage/blobs/soft-delete-blob-overview)

- [Azure Blob Storage lifecycle management overview  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview)

- [Azure Storage blob inventory  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/storage/blobs/blob-inventory)

- [Architecture Best Practices for Azure Blob Storage  learn.microsoft.com](https://learn.microsoft.com/en-us/azure/well-architected/service-guides/azure-blob-storage)

- [Azure Blob Storage pricing  azure.microsoft.com](https://azure.microsoft.com/en-us/pricing/details/storage/blobs/)

## Related inefficiencies

[Browse the library](https://www.pointfive.co/efficiency-hub)

- Azure Blob Storage  CER-0268

### [Excessive Retention of Audit Logs](https://www.pointfive.co/efficiency-hub/inefficiencies/excessive-retention-of-audit-logs)

Audit logs are often retained longer than necessary, especially in environments where the logging destination is not carefully selected. Projects that initially route SQL Audit Logs or other high-volume sources to LAW or Azure Storage may...

Storage

- Azure Blob Storage  CER-0335

### [Excessive Transaction Cost Overhead on Blob Storage from I/O-Intensive Workloads](https://www.pointfive.co/efficiency-hub/inefficiencies/excessive-transaction-costs-from-filesystem-style-access-patterns-on-blob-storage)

Azure Blob Storage and ADLS Gen2 bill per transaction - every list, read, write, rename, and metadata operation is a separately metered API call. When organizations migrate workloads from on-premises Hadoop/HDFS environments or local...

Storage

- Azure Blob Storage  CER-0172

### [High Transaction Cost Due to Misaligned Tier in Azure Blob Storage](https://www.pointfive.co/efficiency-hub/inefficiencies/high-transaction-cost-due-to-misaligned-tier-in-azure-blob-storage)

Azure Blob Storage tiers are designed to optimize cost based on access frequency. However, when frequently accessed data is stored in the Cool or Cold tiers - either due to misconfiguration, default settings, or cost-only optimization -...

Storage

---
Source: the public page above. Product screenshots and illustrative interfaces are examples, not live customer data.

