I was struggling to create an app service using Terraform with the error shown below. I could not find a way to resolve this as the error message was difficult to interpret.
Creating Windows/Linux Web App: (Site Name "" / Resource Group ""): web.AppsClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: autorest/azure: Service returned an error. Status=<nil> <nil>
The code for the service plan was simple enough and I was so confused about this behavior.
resource "azurerm_resource_group" "rg" { name = var.resource_group_name location = var.resource_group_location } resource "azurerm_service_plan" "app_service_plan" { name = var.app_service_plan_name location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name os_type = "Windows" sku_name = "F1" } resource "azurerm_windows_web_app" "app_service" { name = var.app_service_name location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name service_plan_id = azurerm_service_plan.app_service_plan.id site_config { use_32_bit_worker = true } }
In order to resolve I enabled detailed debugging on terraform. As I was using Windows I used on powershell
$Env:TF_LOG = "TRACE"
and then I tried to run terraform apply again.
Terraform will provide detailed information about the running commands, so that I was able to determine the error.
Voila!
AlwaysOn should be disabled as there is a conflict.
In the documentation of azure web app one can find that always on is disabled by default however it does not seem to be correct.
In order to resolve you should add the always_one variable to false.
site_config { use_32_bit_worker = true always_on = false }
Then you can run terraform apply again, and the resource will be created.
Enable debugging on terraform for your OS:
Update
I perfomed a PR in order to correct the wrong documentation and it has been merged. As a result the documentation will be correct counting from the next deploy.