Skip to content

StorageAccount create fails with transient error, resource is created in Azure and never recorded in Pulumi state — refresh doesn't detect it #4761

Description

@andrej98

What happened?

During the create of a storage account an error occured:

error: Status=409 Code="StorageAccountOperationInProgress" Message="An operation is currently performing on this storage account that requires exclusive access."

However, in Azure the resource got created after that.
On retry attempts, the error was:

error: cannot create already existing resource <resource-id>

pulumi refresh does not detect it, because the resource was not created in the pulumi state, even though it exists in Azure.

The workaround solution is to import the resource into pulumi, or delete it in Azure and try pulumi up again.
I think the proper solution would be that the next pulumi refresh and pulumi up to fix it. It should be able to recover from these transient errors, and not expect the user to fix it manually.

Example

Create a resource with pulumi UP that fails with transient error, while the resource gets created in Azure. The subsequent pulumi UP will fail due to error: cannot create already existing resource

Output of pulumi about

2026-06-26T11:06:12.1878317Z Version 3.248.0
2026-06-26T11:06:12.1878509Z Go Version go1.26.4
2026-06-26T11:06:12.1878684Z Go Compiler gc
2026-06-26T11:06:12.1878759Z
2026-06-26T11:06:12.1882287Z Host
2026-06-26T11:06:12.1882651Z OS ubuntu
2026-06-26T11:06:12.1882877Z Version 24.04
2026-06-26T11:06:12.1883044Z Arch x86_64
2026-06-26T11:06:12.1883119Z
2026-06-26T11:06:12.1891446Z Environment Variables:
2026-06-26T11:06:12.1893626Z Name Value
2026-06-26T11:06:12.1893991Z PULUMI_EXPERIMENTAL true
2026-06-26T11:06:12.1894352Z PULUMI_HOME "/mnt/vss/_work/_temp/1782471962013"
2026-06-26T11:06:12.1894725Z PULUMI_SKIP_CHECKPOINTS true

Additional context

No response

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Metadata

Metadata

Assignees

Labels

needs-reproNeeds repro steps before it can be triaged or fixedneeds-triageNeeds attention from the triage team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions