Azure Function App - Failed to start a new language worker for runtime: dotnet-isolated

Raymond Raymond visibility 258 event 2023-09-27 access_time 3 months ago language English

When building Azure Function App with docker to host in Azure Container App environment, you may encounter an special error when building it with the latest .NET 8 RC 1 release: Failed to start a new language worker for runtime: dotnet-isolated, Microsoft.Azure.WebJobs.Script.Grpc: The operation has timed out.

Root cause

This issue occurs because the base image of Azure  Functions Dotnet (Isolated) doesn't contain the required runtime.

For example, assuming you are building Azure Function with latest .NET 8 SDK as at 2023-09-27:

 "sdk": {
"version": "8.0.100-rc.1.23455.8",
"rollForward": "latestFeature",
"allowPrerelease": true

Then you build your Azure function using the following Dockerfile:

#See to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM AS base
WORKDIR /home/site/wwwroot

FROM AS build
COPY ["src/MyAzureFunctions.csproj", "src/MyAzureFunctions/"]
COPY . .
WORKDIR "/src/src/MyAzureFunctions"
RUN dotnet build "MyAzureFunctions.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
RUN dotnet publish "MyAzureFunctions.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /home/site/wwwroot
COPY --from=publish /app/publish .
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \

When you start the container or when you deploy it to Azure, you will see the error mentioned earlier.


The root cause can be found in the detailed error logs:

2023-09-23 13:52:18 info: Host.Function.Console[0]
2023-09-23 13:52:18       Framework: 'Microsoft.NETCore.App', version '8.0.0-rc.1.23419.4' (x64)
2023-09-23 13:52:18 info: Host.Function.Console[0]
2023-09-23 13:52:18       .NET location: /usr/share/dotnet/
2023-09-23 13:52:18 info: Host.Function.Console[0]
2023-09-23 13:52:18 info: Host.Function.Console[0]
2023-09-23 13:52:18       The following frameworks were found:
2023-09-23 13:52:18 info: Host.Function.Console[0]
2023-09-23 13:52:18         8.0.0-preview.7.23375.6 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

It basically required .NET 8 RC 1 runtime while only the preview 7 version is available in the base image.

We can also double confirm this by using command line tool:

docker run -it --entrypoint /bin/sh MyAzureFunctions

*Assuming the local built image is named MyAzureFunctions.

And then run the following command line in the interactive:

# dotnet --list-runtimes

The output looks like the following:

Microsoft.AspNetCore.App 8.0.0-preview.7.23375.9 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.0-preview.7.23375.6 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

This indicates that you can only use .NET 8 preview 7 for your Azure Function App.


After looking into the available tags of the base image:, I found  tag 4-nightly-dotnet-isolated8.0 does include the .NET 8 RC1 runtime.

Hence, to resolve this issue, we just need to update the base image to the following:

FROM AS base

After the new image is built, we can verify it by running the Terminal with the container:

# dotnet --list-runtimes

Microsoft.AspNetCore.App 8.0.0-rc.1.23421.29 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.0-rc.1.23419.4[/usr/share/dotnet/shared/Microsoft.NETCore.App]

As you can see in the output,  it contains runtime Microsoft.NETCore.App 8.0.0-rc.1.23419.4

Now we can use the image to deploy into Azure Container App environment. Refer to this code snippet Deploy Azure Function App with .NET 8 to Azure Container Apps via Bicep for more details.

More from Kontext
info Last modified by Raymond 3 months ago copyright This page is subject to Site terms.
Like this article?
Share on
comment Comments
No comments yet.

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts