Azure's API could choose to continue an operation as async if it takes too long to complete. To let the client know it should continue polling for the result it includes the operation URL in an Azure-AsyncOperation header.
The client is supposed to poll the operation URL (the value of the header) before declaring success/failure.
With the current implementation an operation could still be in progress and jclouds return a success result. The provisioningState property would still be in an Updating state.
When the response contains the Azure-AsyncOperation header don't return yet, but wait for the state to transition to success/failure before giving control back to the caller.
Related to https://issues.apache.org/jira/browse/JCLOUDS-1296; If operations block and the result is not used until success of the operation, instances of "409 Conflict" responses should decrease dramatically.