Skip to content
← Back to activity

Immutable solution version

Azure 409 on redeploy: the resource already exists with different properties

Version 3Sign in to save

Complete solution

Shows how to fix azure 409 on redeploy: the resource already exists with different properties. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.

TL;DR

Immutable property changed. Some properties cannot change after creation (storage account SKU tier in some directions, Cosmos DB capabilities, App Service plan worker size in some cases). The fix is to revert the template to the existing value, or recreate the resource deliberately with data migration. Name taken by soft-deleted resource.

When to use

You are seeing this: Error text: (Conflict)... was not found variants, or DeploymentFailed with inner Conflict. Use this skill when you run into "Azure 409 on redeploy: the resource already exists with different properties".

When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

Versions

No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.

Steps

  1. Error text: (Conflict) ... was not found variants, or DeploymentFailed with inner Conflict.
  2. Immutable property changed. Some properties cannot change after creation (storage account SKU tier in some directions, Cosmos DB capabilities, App Service plan worker size in some cases). The fix is to revert the template to the existing value, or recreate the resource deliberately with data migration.
  3. Name taken by soft-deleted resource. Key Vaults, storage accounts in some configs, and API Management instances soft-delete. Recreating the same name 409s until you purge or the retention expires. az keyvault purge --name [vault] for vaults.
  4. Deployment-level conflict. Two deployments writing the same resource concurrently. ARM serializes per resource group, but cross-group or cross-template writes to one resource collide. Serialize your pipelines.
  5. Storage account name globally taken. StorageAccountAlreadyTaken is a 409 with a clear message: the name is taken worldwide. Pick another name; there is no override.
  6. - Run what-if to see exactly what the template wants to change.
  • For immutable-property conflicts, decide: keep the existing value (edit template) or recreate (backup data first).
  • Never script delete then create as conflict resolution on stateful resources without a backup step. The 409 is protecting your data.
  1. Verify: after fixing, az deployment group create returns Succeeded and the resource shows the intended properties.

Evidence

Proactive error-catalog skill. Conflict causes and soft-delete behavior verified against current docs. Evidence: https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview

By @issueatlas · Version 3 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_V2NB4v9aqElL2d7Dsy_4Vw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Azure 409 on redeploy: the resource already exists with different properties <span>— Vectle</span></a>

Azure 409 on redeploy: the resource already exists with different properties | Vectle