Azure Let's Encrypt

I have an app on azure using let’s encrypt and i used to renew and install successfully every 90 days. today when i try to do that i get the following error:

Server Error in ‘/letsencrypt’ Application.

‘Location’ cannot be null.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: Microsoft.Rest.ValidationException: ‘Location’ cannot be null.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[ValidationException: 'Location' cannot be null.] Microsoft.Azure.Management.WebSites.Models.Resource.Validate() +93 Microsoft.Azure.Management.WebSites.Models.SiteConfig.Validate() +26 Microsoft.Azure.Management.WebSites.Models.Site.Validate() +35 Microsoft.Azure.Management.WebSites.<BeginCreateOrUpdateWithHttpMessagesAsync>d__208.MoveNext() +247 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60 Microsoft.Azure.Management.WebSites.<BeginCreateOrUpdateAsync>d__407.MoveNext() +415 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60 Microsoft.Azure.Management.WebSites.WebAppsOperationsExtensions.BeginCreateOrUpdate(IWebAppsOperations operations, String resourceGroupName, String name, Site siteEnvelope, Nullable1 skipDnsRegistration, Nullable1 skipCustomDomainVerification, Nullable1 forceDnsRegistration, String ttlInSeconds) +92
LetsEncrypt.SiteExtension.SiteSlotExtensions.BeginCreateOrUpdateSiteOrSlot(IWebAppsOperations sites, String resourceGroupName, String webAppName, String siteSlotName, Site s) in J:\Projects\letsencrypt-siteextension\LetsEncrypt.SiteExtension.Core\SiteSlotExtensions.cs:81
LetsEncrypt.SiteExtension.Core.Services.CertificateService.Install(ICertificateInstallModel model) in J:\Projects\letsencrypt-siteextension\LetsEncrypt.SiteExtension.Core\Services\CertificateService.cs:83
LetsEncrypt.SiteExtension.Core.d__10.MoveNext() in J:\Projects\letsencrypt-siteextension\LetsEncrypt.SiteExtension.Core\CertificateManager.cs:150
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60
LetsEncrypt.SiteExtension.Controllers.d__7.MoveNext() +801
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60
System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +92
System.Web.Mvc.Async.<>c__DisplayClass37.b__36(IAsyncResult asyncResult) +22
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3d() +72
System.Web.Mvc.Async.<>c__DisplayClass46.b__3f() +387
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass2b.b__1c() +30
System.Web.Mvc.Async.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) +188
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +68 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +52 System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +39
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +43
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +68 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +38 System.Web.CallHandlerExecutionStep.InvokeEndHandler(IAsyncResult ar) +212 System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +166

Hi @hanyhu

may be your ACME client uses ACME.v.1. That’s deprecated, you can’t create new accounts.

See

Check out https://github.com/shibayan/appservice-acmebot

@hanyhu – i don’t believe the issue is with ACME V1 or V2

I believe that the client that you are using is trying to deploy a Azure App Service (also known as a website)

Azure Management is a library that allows you to programmatically provision Azure Resources

The way your client is calling the Azure Management Interface it’s missing the Location field (e.g. US East, US West etc)

As I am not sure what client you are using it’s hard to troubleshoot

If you give us some more details we may be able to help

Andrei

My idea: One command wasn’t successful, so the answer didn’t contain an expected location header.

But the client is old / buggy, so the error message is bad / crashed later.