From a0a8b3e5f28c5eec4fdab9409f9e3f300dca7449 Mon Sep 17 00:00:00 2001 From: Dan DeFolo <77078375+dadefolo@users.noreply.github.com> Date: Fri, 30 Jan 2026 17:38:11 -0800 Subject: [PATCH 1/5] Create After-2601-SBE-update-fails-on-DeployADLess-parameter.md --- ...-update-fails-on-DeployADLess-parameter.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md diff --git a/TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md b/TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md new file mode 100644 index 0000000..3254d58 --- /dev/null +++ b/TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md @@ -0,0 +1,66 @@ +# SBE Update fails with `Cannot validate argument on parameter 'DeployADLess'` + +For clusters deployed (or upgraded from 22H2) earlier than 2408, after updating to 12.2601.1002.38, subsequent SBE update may fail with the error `Cannot validate argument on parameter 'DeployADLess'`. + +## Symptoms + +You see an SBE update failure in portal or PowerShell that contains the message `The argument "[DEPLOYADLESS]" does not belong to the set "true,false"`. + +For a cluster on 2601, SBE update fails with the message (any partner OEM may be impacted): + +``` +Cannot validate argument on parameter 'DeployADLess'. +The argument "[DEPLOYADLESS]" does not belong to the set "true,false," specified by the ValidateSet attribute. +Supply an argument that is in the set and then try the command again. +at TestHardwarePluginUsed, C:\NugetStore\Microsoft.AzureStack.Role.SBE.10.2601.1002.2027\content\Classes\SBE\SBE.psm1: line 766, +``` + +## Issue Validation + +You see an SBE update failure in portal or PowerShell that contains the message `The argument "[DEPLOYADLESS]" does not belong to the set "true,false`. + +## Cause + +DeployADLess parameter entry was introduced in version 2408, but is only applicable to clusters deployed on this version or later. For earlier clusters, update process did not insert the entry to CloudParameters. + +2601 introduced some new SBE scripts that validates the value of such parameter, and in the absence of the parameter entry, the value becomes the placeholder literal string `[DEPLOYADLESS]`. This value is unexpected by the script and thus fails the update. + +## Mitigation Details + +The following script may be run from any host node. After running the script, resume update. + +```Powershell +$ErrorActionPreference = "Stop" +Import-Module -Name ECEClient -Verbose:$false -DisableNameChecking -ErrorAction SilentlyContinue + +$eceClient = Create-ECEClusterServiceClient +$eceParamsXml = [XML]($eceClient.GetCloudParameters().GetAwaiter().GetResult().CloudDefinitionAsXmlString) + +# Only add if we cannot get the parameter. +if (-not ($eceParamsXml.SelectSingleNode("//Category[@Name='Domain']//Parameter[@Name='DeployADLess']"))) +{ + # Add the DeployADLess parameter + Write-Output "Adding DeployADLess parameter to CloudParameters." + $parametersUpdateDefinition = New-Object Microsoft.AzureStack.Solution.Deploy.EnterpriseCloudEngine.Controllers.Models.CloudParametersUpdateDescription + $parametersUpdateDefinition.Type = "AddElement" + $parametersUpdateDefinition.BaseElementXPath = "//Category[@Name='Domain']" + $parametersUpdateDefinition.UpdateXml = @" + +"@ + $null = $eceClient.UpdateCloudParameters($parametersUpdateDefinition).GetAwaiter().GetResult() + Write-Output "Validating add DeployADLess parameter" + $null = $ececlient.InvalidateCloudDefinitionCache().GetAwaiter().GetResult() + $eceParamsXml = [XML]($eceClient.GetCloudParameters().getAwaiter().GetResult().CloudDefinitionAsXmlString) + if (-not ($eceParamsXml.SelectSingleNode("//Category[@Name='Domain']//Parameter[@Name='DeployADLess']"))) + { + throw "Failed to add DeployADLess parameter." + } + Write-Output "Added DeployADLess parameter to CloudParameters." +} +else +{ + Write-Warning "DeployADLess parameter already exists." +} +``` + +We are expecting a workaround to be applied in the next release newer than 12.2601.1002.38 so you can also avoid this issue by updating to a newer version of Azure Local (before attempting to install your next SBE). From 010239afb5fea0c59a3226a41554817d348558ce Mon Sep 17 00:00:00 2001 From: Dan DeFolo <77078375+dadefolo@users.noreply.github.com> Date: Fri, 30 Jan 2026 17:51:42 -0800 Subject: [PATCH 2/5] Add SBE download 2601 known issue --- ...Assert-SBEResponseSchema-not-recognized.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md diff --git a/TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md b/TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md new file mode 100644 index 0000000..cf4963a --- /dev/null +++ b/TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md @@ -0,0 +1,51 @@ +# SBE download fails on 12.2601.x initial release with `'Assert-SBEResponseSchema' is not recognized` +After deploying or updating to 12.2601.1002.38 attempts to install an SBE where it is automatically downloaded (via SBE download connector feature) will fail. + +## Symptoms +At the highest level, the attempt to install an SBE-only update will report `DownloadFailed` state in Get-SolutionUpdate output and if you investigate the details of that failure you will see this as the underlying failure (perhaps as reported in the portal): + +``` +CloudEngine.Actions.InterfaceInvocationFailedException: Type 'SBEPartnerDownloadConnectorCheckHealth' of Role 'SBE' raised an exception: + +[SBEPartnerDownloadConnectorCheckHealth] SBE_xxx_xxxx_x.x.x.x download connector failure getting version 'x.x.x.x' files. The download connector health check failed. Exception Message : The term 'Assert-SBEResponseSchema' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. +``` +Note: as this can happen with any vendor SBE the above example has replaced partner name, SBE family, and SBE version with `xxx` entries + +## Issue Validation +To confirm the scenario that you are encountering is the issue documented in this article, confirm the SBE download failure is caused by a failure that includes the message `The term 'Assert-SBEResponseSchema' is not recognized as the name of a cmdlet`. + +### Failure/Errors seen on Portal/CLI + +Will be reported as DownloadFailed by `Get-SolutionUpdate` for a SBE update for a cluster with 2601 installed. + +### PowerShell script + +PowerShell code to confirm/detect this issue occurred. + +```Powershell +Get-ActionPlanInstances | ?{$_.ActionTypeName -eq "SbeDownload" -and $_.Status -eq "Failed"} > downloadFailures.txt + +Select-string -Path .\downloadFailures.txt -Pattern "Assert-SBEResponse" +``` +As shown below, if there are matches to this search there were download failures caused by this issue: +![Assert-SBEResponse-Failure-Example.png](./images/Assert-SBEResponse-Failure-Example.png) + +## Cause +Azure Local 12.2601.1002.38 removed a deprecated helper module from the `c:\Program Files\WindowsPowerShell\Module` directory. This caused a regression in the SBE download actionplan which had a dependency on the `Assert-SBEResponseSchema` method from that module being auto-imported. Without that method being available the download health check fails as per the exception above. + +This will be addressed in future Azure Local updates by refactoring the SBE download logic to no longer depend on this deprecated module. + +## Mitigation Details + +Depending on when you become aware of this known issue different mitigation options can be used. Choose the best option for your situation + +### Option 1 - Install any pending SBE updates BEFORE updating to 2601 +Since this issue is introduced by the 12.2601.1002.38 update, the problem can be avoided by installing any available SBE updates first and then updating to Azure Local 2601 second. Since this issue will be addressed in the 12.2602 release, by installing the SBE first this will likely avoid this issue entirely (as it is unlikely that a new SBE update will be available prior to the availability of Azure Local 2602). + +### Option 2 - Defer installing SBE updates until a version newer than 12.2601.1002.38 is released +Microsoft intends to patch this issue in the next release. If Get-SolutionUpdateEnvironment reports the CurrentVersion is newer than `12.2601.1002.38` then you should be able to install SBE updates without experiencing the download failure. + +### Option 3 - Avoid the download by importing the SBE +If you are experiencing this issue and do not wish to wait for the next Azure Local release you can use `Add-SolutionUpdate -SkipSbeVersionValidation` to import the SBE after manually downloading the 3 SBE files from your hardware vendor. Once the SBE has imported you should be able to start the SBE update as per the normal documented process. + +**Note:** Refer to your hardware vendor SBE documentation for how to download and import your SBE. Microsoft describes the [general process for importing](https://learn.microsoft.com/en-us/azure/azure-local/update/update-via-powershell-23h2?view=azloc-2512#step-3-import-and-rediscover-updates)), but some hardware vendors require additional steps (such as extracting the 3 SBE files from a larger bundle) and thus you should primarily refer to hardware vendor documentation for specific guidance. \ No newline at end of file From 1a561f41e5577eca58b98ec3a60f6b7608f127a4 Mon Sep 17 00:00:00 2001 From: Dan DeFolo <77078375+dadefolo@users.noreply.github.com> Date: Fri, 30 Jan 2026 17:52:20 -0800 Subject: [PATCH 3/5] Add SBE download issue image --- .../Assert-SBEResponse-Failure-Example.png | Bin 0 -> 27895 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 TSG/SolutionExtension/images/Assert-SBEResponse-Failure-Example.png diff --git a/TSG/SolutionExtension/images/Assert-SBEResponse-Failure-Example.png b/TSG/SolutionExtension/images/Assert-SBEResponse-Failure-Example.png new file mode 100644 index 0000000000000000000000000000000000000000..9dcc237014ff9ba4a926e33b3d21eb33a3fb5f17 GIT binary patch literal 27895 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 Date: Fri, 30 Jan 2026 23:10:55 -0800 Subject: [PATCH 4/5] Update TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- ...BE-download-fails-Assert-SBEResponseSchema-not-recognized.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md b/TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md index cf4963a..480db1d 100644 --- a/TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md +++ b/TSG/SolutionExtension/SBE-download-fails-Assert-SBEResponseSchema-not-recognized.md @@ -48,4 +48,4 @@ Microsoft intends to patch this issue in the next release. If Get-SolutionUpdate ### Option 3 - Avoid the download by importing the SBE If you are experiencing this issue and do not wish to wait for the next Azure Local release you can use `Add-SolutionUpdate -SkipSbeVersionValidation` to import the SBE after manually downloading the 3 SBE files from your hardware vendor. Once the SBE has imported you should be able to start the SBE update as per the normal documented process. -**Note:** Refer to your hardware vendor SBE documentation for how to download and import your SBE. Microsoft describes the [general process for importing](https://learn.microsoft.com/en-us/azure/azure-local/update/update-via-powershell-23h2?view=azloc-2512#step-3-import-and-rediscover-updates)), but some hardware vendors require additional steps (such as extracting the 3 SBE files from a larger bundle) and thus you should primarily refer to hardware vendor documentation for specific guidance. \ No newline at end of file +**Note:** Refer to your hardware vendor SBE documentation for how to download and import your SBE. Microsoft describes the [general process for importing](https://learn.microsoft.com/en-us/azure/azure-local/update/update-via-powershell-23h2?view=azloc-2512#step-3-import-and-rediscover-updates), but some hardware vendors require additional steps (such as extracting the 3 SBE files from a larger bundle) and thus you should primarily refer to hardware vendor documentation for specific guidance. \ No newline at end of file From cf5e4437db423e8405e7f532e3b943f5ac20747f Mon Sep 17 00:00:00 2001 From: Dan DeFolo <77078375+dadefolo@users.noreply.github.com> Date: Fri, 30 Jan 2026 23:11:12 -0800 Subject: [PATCH 5/5] Update TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../After-2601-SBE-update-fails-on-DeployADLess-parameter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md b/TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md index 3254d58..7c16d4e 100644 --- a/TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md +++ b/TSG/SolutionExtension/After-2601-SBE-update-fails-on-DeployADLess-parameter.md @@ -49,7 +49,7 @@ if (-not ($eceParamsXml.SelectSingleNode("//Category[@Name='Domain']//Parameter[ "@ $null = $eceClient.UpdateCloudParameters($parametersUpdateDefinition).GetAwaiter().GetResult() Write-Output "Validating add DeployADLess parameter" - $null = $ececlient.InvalidateCloudDefinitionCache().GetAwaiter().GetResult() + $null = $eceClient.InvalidateCloudDefinitionCache().GetAwaiter().GetResult() $eceParamsXml = [XML]($eceClient.GetCloudParameters().getAwaiter().GetResult().CloudDefinitionAsXmlString) if (-not ($eceParamsXml.SelectSingleNode("//Category[@Name='Domain']//Parameter[@Name='DeployADLess']"))) {