What it is
A storage account whose kind is Storage — general-purpose v1, the original account model from Azure Storage's early years. It still serves blobs, files, queues, and tables, which is exactly why it survives: nothing is visibly broken. But it predates blob access tiers, lifecycle management policies, several networking and redundancy options, and the pricing model every cost-optimization guide assumes you have.
Why it happens
Storage accounts don't age out on their own. An account created in 2015 keeps its original kind until someone deliberately upgrades it, and because GPv1 keeps working, no incident ever forces the question. The accounts that remain tend to be the oldest and least-owned resources in the tenant — created before current naming conventions, holding data nobody is certain about.
The gap is real, though. GPv1 has no hot/cool/archive tiers and no lifecycle management, so cold data sits at one flat rate with no way to tier it down, and the transaction pricing model differs from GPv2's — which direction that cuts depends entirely on your workload, so model it rather than assume. It also predates several modern management and redundancy options (no ZRS-family choices, for instance).
What changes the urgency in 2026: Microsoft is retiring GPv1 this year. New GPv1 creation is already blocked in the portal, and accounts not upgraded by the retirement deadline will be auto-migrated to GPv2 on Microsoft's schedule — meaning the access-tier and cost decisions get made without you.
What it costs / blast radius
The direct cost of leaving a GPv1 account alone is usually small or nothing — this is primarily a governance and hygiene finding. The exposure is indirect: cold data that can't be tiered or lifecycle-expired, an account model outside the assumptions of modern tooling, and, this year, a forced migration if you don't do it first. The upgrade itself is free, in-place, and non-disruptive, but it is permanent, and GPv2's per-operation pricing differs — a transaction-heavy workload can cost more after upgrading, so compare your operation counts against GPv2 rates and pick the default access tier deliberately instead of inheriting Hot. (Azure behavior and published pricing model; authored assessment, no measured figures.)
See it
Resources
| where type =~ 'microsoft.storage/storageaccounts'
| where kind =~ 'Storage' // GPv1 reports exactly 'Storage'; v2 is 'StorageV2'
| project name, resourceGroup, subscriptionId, location,
sku = sku.name, created = properties.creationTime// Model transaction costs first and choose the access tier deliberately;
// the upgrade cannot be reversed and unspecified tier defaults to Hot.
az storage account update -g rg-prod -n corpdata005 \
--set kind=StorageV2 --access-tier=HotHow StratoLens helps
StratoLens inventories every storage account across every subscription and flags the ones still on the legacy v1 kind, so the 2015-era accounts nobody owns show up on a list instead of in Microsoft's forced-migration queue. The check runs automatically and continuously inside your own tenant.