Azure Linux error Umbraco.Cms.Core.FireAndForgetRunner - HttpClient.Timeout of 100 seconds elapsing

Hi,

I’ve got an Umbraco v13 site that runs fine, sitting in an Azure Windows web app, using a storage account and SQL server database, but the same code won’t run in an Azure Linux web app.

In the past, I’ve run several sites in Linux Azure web apps without a problem, but this website will only work if I remove .AddAzureBlobMediaFileSystem() and .AddAzureBlogImageSharpCache from the Startup.cs and use the local media folder (sitting inside the web/app service) instead.

When trying to use the storage account, the backoffice runs very, very slowly and I see lots of errors in the Umbraco logs stating that “the request was canceled due to the configure HttpClient.Timeout of 100 seconds elapsing.” I don’t see this error in the other Umbraco sites I run in Azure Linux web apps.

The Azure configuration looks good to me but I must have missed something. Again, this works fine if I publish it to a Windows web app but I was hoping to use Linux as I’ve done in the past.

Has anyone seen this issue before?

{
    "@t": "2025-05-12T20:46:19.4869962Z",
    "@mt": "Exception thrown in a background thread",
    "@l": "Error",
    "@x": "System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.\n ---> System.TimeoutException: A task was canceled.\n ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.\n   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)\n   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)\n   at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)\n   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)\n   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)\n   --- End of inner exception stack trace ---\n   --- End of inner exception stack trace ---\n   at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)\n   at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)\n   at Umbraco.Cms.Core.Persistence.Repositories.InstallationRepository.SaveInstallLogAsync(InstallLog installLog)\n   at Umbraco.Cms.Core.Services.InstallationService.LogInstall(InstallLog installLog)\n   at Umbraco.Cms.Core.FireAndForgetRunner.<>c__DisplayClass4_0.<<LoggingWrapper>b__0>d.MoveNext()",
    "SourceContext": "Umbraco.Cms.Core.FireAndForgetRunner",
    "ProcessId": 1138,
    "ProcessName": "dotnet",
    "ThreadId": 11,
    "ApplicationId": "6d2d325800f175b90b8b9e83cc827257b9918e14",
    "MachineName": "83e8b0fc5b30",
    "Log4NetLevel": "ERROR"
}

After further investigation this morning, I believe this issue was being caused by an Azure web application firewall setting being applied to the Linux web application but not the Windows web application.

It has been resolved by amending the firewall rules.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.