Unhandled exception causes docker container to hang on ARM64, like #66707

Open
#111,601 6 comments 2 reactions 1 assignee View on GitHub

@janvorli is already working on this.

Since Jul 21, 2025.

Assessment

This issue has not been assessed yet.

Description

area-VM-coreclr
Description

It looks like the problem describred in #666707, is happening in .NET 9

More details

Application description

Containerized .net 9 console app, built from worker service template

If some configuration is missing, the app throws an exception in a constructor of a DI injected service.

Behavior in Windows Docker Desktop

When running
docker run myapp:1.0
the container stops as a consequence of the unhandled exception

Behavior in Linux docker - Unexpected behavior!!

When running
docker run myapp:1.0
the container shows the unhandled exception, but doesn't stop

However, adding the --init switch:
docker run --init myapp:1.0
the container shows the excception, and stops, as expected

Summary

So it looks exactly as described in https://github.com/dotnet/runtime/issues/66707#issuecomment-1382304345

Reproduction Steps

As described above:

  • containerized app throwing an exception (more specifically an app based on worker service template throwing in the ctor of an injected service)

Running it in Linux ARM64 with
docker run myapp:1.0
doesn't stop the container

Adding --init, the exception does stop the container.

Expected behavior

Running the contaienr in Linux ARM64 with
docker run myapp:1.0
shoudl stop the contaienr on unhandled exception, but only does if --init is added.

Actual behavior

The container doesn't stop on unhandled exception.

Regression?

If it was really fixed in .NET 7, yep, it's a regression of something solved as explained in #66707

Known Workarounds

Run the container with --init

Configuration

No response

Other information

No response

Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/runtime

All issues in dotnet/runtime

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.