Successfully deployed from ARM template the primary and secondary Azure SQL servers with expected failover groups. Deploying the ARM template on subsequent deployments is returning the following error message:
  "error": {
    "code": "FailoverGroupCreateOrUpdateRequestReadOnlyPropertyModified",
    "message": "The create or update failover group request body should not modify the read-only property 'location'."
  }
} undefined
We haven't made any changes to the primary or secondary server's location property as indicated in the error message.
Code snippet from the ARM template:
    {
      "comments": "Azure SQL Server Failover Group",
      "condition": "[parameters('isProduction')]",
      "type": "Microsoft.Sql/servers/failoverGroups",
      "apiVersion": "2015-05-01-preview",
      "name": "[concat(variables('sqlServerPrimaryName'), '/', variables('sqlServerFailoverName'))]",
      "location": "[parameters('sqlServerPrimaryLocation')]",
      "dependsOn": [
        "[resourceId('Microsoft.Sql/servers', variables('sqlServerPrimaryName'))]",
        "[resourceId('Microsoft.Sql/servers', variables('sqlServerSecondaryName'))]",
        "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('adminDbName'))]",
        "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('trxnDbName'))]",
        "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('dbaDbName'))]"
      ],
      "properties": {
        "readWriteEndpoint": {
          "failoverPolicy": "Automatic",
          "failoverWithDataLossGracePeriodMinutes": 60
        },
        "readOnlyEndpoint": {
          "failoverPolicy": "Disabled"
        },
        "partnerServers": [
          {
            "id": "[resourceId('Microsoft.Sql/servers', variables('sqlServerSecondaryName'))]"
          }
        ],
        "databases": [
          "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('adminDbName'))]",
          "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('trxnDbName'))]",
          "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('dbaDbName'))]"
        ]
      }
    }
 
                        
As @Leon Yue's comment said:
You couldn't update
locationproperty when you deploy at the second time, and you need to move this property.