Skip to content

Updating a workload during the "patch Tuesday" release window corrupts most dotnet commands on Linux and macOS #55032

@StudioLE

Description

@StudioLE

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

When dotnet workload install wasm-tools (or any other workload) is run on a linux or macOS machine during the "patch Tuesday" release window it corrupts most of the dotnet commands.

This issue was first noted on a GitHub Actions build but subsequently experienced by multiple users on their local machines.

Command and output:

$ dotnet workload install wasm-tools

Skipping NuGet package signature verification.
Skipping NuGet package signature verification.
Installing workload manifest microsoft.net.sdk.android version 34.0.95...
Installing workload manifest microsoft.net.sdk.ios version 17.2.8043...
Installing workload manifest microsoft.net.sdk.maccatalyst version 17.2.8043...
Installing workload manifest microsoft.net.sdk.macos version 14.2.8043...
Installing workload manifest microsoft.net.sdk.maui version 8.0.7...
Installing workload manifest microsoft.net.sdk.tvos version 17.2.8043...
Installing workload manifest microsoft.net.workload.mono.toolchain.current version 8.0.4...
Installing workload manifest microsoft.net.sdk.aspire version 8.0.0-preview.5.24201.12...
Workload installation failed. Rolling back installed packs...
Installation rollback failed: Workload manifest dependency 'Microsoft.NET.Workload.Emscripten.Current' version '8.0.3' is lower than version '8.0.4' required by manifest 'microsoft.net.workload.mono.toolchain.current' [/usr/share/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.4/WorkloadManifest.json]
Workload installation failed: Workload manifest dependency 'Microsoft.NET.Workload.Emscripten.Current' version '8.0.3' is lower than version '8.0.4' required by manifest 'microsoft.net.workload.mono.toolchain.current' [/usr/share/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.4/WorkloadManifest.json]
Error: Process completed with exit code 1.

Expected Behavior

Expected to be able to update a workload at any time without it corrupting the local system.

Steps To Reproduce

Execute the following during a "patch Tuesday" release window when some but apparently not all dependencies have been released.

dotnet workload install wasm-tools

Exceptions (if any)

No response

.NET Version

8.0.202

Anything else?

Developers should not have to have knowledge of the .NET release process. The tooling should have checks built in to ensure that any dependencies it's installing are actually available.

The tools should either:

  • Fail with a warning that not all dependencies of the next version are available, or
  • Install the existing working version - ie as 8.0.4 was only partially released the tool should have fallen back to 8.0.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    ✔️ Resolution: DuplicateResolved as a duplicate of another issueStatus: Resolvedarea-infrastructureIncludes: MSBuild projects/targets, build scripts, CI, Installers and shared framework

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions