Skip to content

Oryx SDK availability lags behind .NET GA releases, causing builds to fail for latest global.json SDK #3017

Description

@Benny-TalentzQ

Bug Report

  • At what date and time did you most recently experience the problem?

2026-07-31 (UTC)

  • Where did you experience the problem? E.g. Azure Web Apps, Azure Functions, Azure Container Registry, or offline use.

Azure Static Web Apps using the Azure/static-web-apps-deploy GitHub Action on GitHub Actions hosted runners.

  • If your repo is publicly available please share its URL:

Repository is currently private.

  • What happened?

Our repository contains the following global.json:

{
  "sdk": {
    "version": "8.0.422",
    "rollForward": "latestPatch"
  }
}

During deployment, Oryx detected the application and dynamically installed .NET SDK 8.0.420 instead of the SDK requested by global.json (8.0.422).

The subsequent build failed because the .NET SDK resolver correctly requires 8.0.422 (or a later patch in the same feature band) and cannot roll back to 8.0.420.

This appears to be another instance of the long-standing gap between new .NET SDK releases and their availability in Oryx, similar to the discussion in Issue #2005.

I also noticed that there is already a pull request updating the SDK catalog/support (PR #2933). However, the version of Oryx currently used by Azure Static Web Apps still does not include those updates, leaving a period during which repositories targeting the latest GA .NET SDK cannot be built successfully.

It would be helpful to understand the expected cadence between SDK update pull requests being merged and those changes becoming available in the Oryx version used by Azure services such as Azure Static Web Apps.

  • What did you expect or want to happen?

Ideally one of the following:

  1. New GA .NET SDKs should become available in Oryx as quickly as possible after release so that repositories can adopt the latest SDK without deployment failures.

  2. If the requested SDK is not yet available, Oryx should fail early with a clear diagnostic, for example:

    Requested SDK 8.0.422 is not yet available in the current Oryx image. Latest available SDK is 8.0.420.

    This would make it immediately obvious that the failure is due to SDK availability in Oryx rather than an application or repository configuration issue.

The current behavior forces developers to either delay SDK updates, pin to an older SDK, or wait until the updated Oryx image is deployed.

  • How can we reproduce it?
  1. Create a .NET 8 application.
  2. Add the following global.json:
{
  "sdk": {
    "version": "8.0.422",
    "rollForward": "latestPatch"
  }
}
  1. Deploy the application to Azure Static Web Apps using the Azure/static-web-apps-deploy GitHub Action.
  2. Perform the deployment before Oryx has been updated to include the requested SDK version.
  3. Observe that Oryx installs .NET SDK 8.0.420, after which the build fails because global.json requires 8.0.422.
  • Do you have log output? Please include between the backticks:
Oryx Version: 0.2.20260109.4+7d54dd5970dbbf3ae6bdcf4dee57b07816a392ce

Detected following platforms:
  dotnet: 8.0.26

Version '8.0.26' of platform 'dotnet' is not installed. Generating script to install it...

Downloading and extracting 'dotnet' version '8.0.420'...

Requested SDK version: 8.0.422
global.json file: /github/workspace/global.json

Installed SDKs:

Install the [8.0.422] .NET SDK or update [/github/workspace/global.json] to match an installed SDK.

Learn about SDK resolution:
https://aka.ms/dotnet/sdk-not-found

Oryx has failed to build the solution.

Additional context

Thank you for taking a look. I understand there may be operational reasons for the delay, but greater visibility into the release cadence—or more informative diagnostics when the requested SDK is unavailable—would significantly improve the developer experience.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions