Process.Start() and PowerShell Start-Process hang on newer mcr.microsoft.com/windows/servercore:ltsc2019 / .NET Framework 4.8 LTSC2019 images
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- docker, powershell
- Domain
- devops, infrastructure, operating-systems
Research direction
Run the minimal PowerShell and .NET repros with the known-good and failing Server Core images, comparing the 10.0.17763.8880 and 10.0.17763.9020 lineages. Check whether process creation behavior changed in the updated LTSC2019 image; done means identifying the regression or confirming the documented pinned-image workaround.
Written by the indexing model from the issue text.
Description
Description of the bug
We are seeing a regression in newer Windows Server Core LTSC 2019 container images.
Starting a child process from inside the container hangs indefinitely. This affects both:
- .NET
System.Diagnostics.Process.Start() - PowerShell
Start-Process
This used to work a few weeks ago and still works on an older pinned .NET Framework SDK image.
Known-good image
The following images still works correctly:
mcr.microsoft.com/dotnet/framework/sdk:4.8-20260512-windowsservercore-ltsc2019mcr.microsoft.com/windows/servercore:10.0.17763.8880
On this image, both:
.NET Process.Start()PowerShell Start-Process
return normally.
Regressed images
The problem occurs on newer images based on updated LTSC2019 Server Core, including:
mcr.microsoft.com/windows/servercore:ltsc2019- current floating
mcr.microsoft.com/dotnet/framework/sdk:4.8 - current floating
mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019
Expected behavior
Starting cmd.exe /c echo hello should return immediately.
Expected output for the .NET repro:
Before
After
Expected output for the PowerShell repro:
Before
After
Actual behavior
The process-start call hangs indefinitely.
For the .NET repro, output is:
Before
and Process.Start() never returns.
For the PowerShell repro, output is:
Before
and Start-Process never returns.
Container OS versions observed
Known-good older image lineage:
10.0.17763.8880
Failing newer image lineage:
10.0.17763.9020
Minimal PowerShell repro
Run:
docker run -ti --rm mcr.microsoft.com/windows/servercore:ltsc2019 powershell
Inside the container:
Write-Host "Before"
Start-Process cmd.exe -ArgumentList '/c echo hello' -Wait
Write-Host "After"
Actual result on the failing image:
Before
and then it hangs.
Minimal .NET repro
Run:
docker run -ti --rm mcr.microsoft.com/windows/servercore:ltsc2019 powershell
Inside the container:
Add-Type @"
using System;
using System.Diagnostics;
public class Test {
public static void Run() {
var p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c echo hello";
Console.WriteLine("Before");
p.Start();
Console.WriteLine("After");
}
}
"@
[Test]::Run()
Actual result on the failing image:
Before
and then it hangs.
Notes
- This does not appear to be specific to .NET Framework, because the same behavior is reproducible on plain
mcr.microsoft.com/windows/servercore:ltsc2019. - The regression appears to have been introduced after the
2026-05-12.NET Framework SDK LTSC2019 image. - We are currently pinning to
mcr.microsoft.com/dotnet/framework/sdk:4.8-20260512-windowsservercore-ltsc2019as a temporary workaround.
Environment
- Host OS: Windows Server 2019
- Container base:
mcr.microsoft.com/windows/servercore:ltsc2019 - Affected higher-level image:
mcr.microsoft.com/dotnet/framework/sdk:4.8 - Working higher-level image:
mcr.microsoft.com/windows/servercore:10.0.17763.8880
Question
Is this a known regression in the updated LTSC2019 Server Core image, or an intentional change in process creation behavior inside Windows containers?
- Dominant language
- PowerShell
- Stars
- 551
- Forks
- 76
- PR merge metrics
- No merged PRs in 30d
Getting set up
We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/Windows-Containers
-
enhancement triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
microsoft/Windows-Containers#630 · 5 comments ·
-
enhancement triage
Difficulty 5/5 Over a week Newbie friendliness 25/100
microsoft/Windows-Containers#653 · 1 comment ·
-
enhancement triage
Difficulty 5/5 Over a week Newbie friendliness 30/100
microsoft/Windows-Containers#652 · 1 comment ·
-
enhancement triage
Difficulty 5/5 Over a week Newbie friendliness 30/100
microsoft/Windows-Containers#651 · 1 comment ·
-
enhancement triage
Difficulty 5/5 Over a week Newbie friendliness 25/100
microsoft/Windows-Containers#650 · 2 comments ·
All issues in microsoft/Windows-Containers
Similar issues
-
ADD openalgoOpentemplate
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
technical-improvement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 4 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
jose-compu/smart-contract-verification#26 ·
Maintainers usually reply within 3 days
-
bug infra/ci P1-next
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
snxstudio/lit-pigeon#138 ·
Maintainers usually reply within 1 day