Known Issue: "AllResults" property error during Pre-Update Health Check

March 27, 2026 · View on GitHub

Component Environment Validator (EnvironmentValidatorPreUpdateJIT)
Severity Critical
Applicable Scenarios Update (Pre-Update Readiness Check)
Affected Versions 2601, 2602, 2603 (Fixed in 2604, not released at time of writing)

Overview

During update readiness checks, the Environment Validator runs JIT (Just-In-Time) validators via the EnvironmentValidatorPreUpdateJIT interface. A known bug in versions 2601–2603 causes the Environment Validator itself to crash with an AllResults property error when any underlying validator throws an unexpected exception.

This error masks the real validation failure. The error message about AllResults is not the root cause — it is a secondary crash caused by a code defect in how exception results are collected.

Symptoms

Pre-update readiness checks fail with the following error in the action plan:

CloudEngine.Actions.InterfaceInvocationFailedException: 
Type 'EnvironmentValidatorPreUpdateJIT' of Role 'EnvironmentValidator' raised an exception:

The property 'AllResults' cannot be found on this object. 
Verify that the property exists and can be set.

   at RunValidators, C:\NugetStore\AzStackHci.EnvironmentChecker.Deploy.10.2602.0.2003\content\Classes\EnvironmentValidator\EnvironmentValidator.psm1: line 1583
   at EnvironmentValidatorPreUpdateJIT, ...\EnvironmentValidator.psm1: line 87

Observable behaviors:

  • Update readiness check fails at EnvironmentValidatorPreUpdateJIT step
  • The error message references AllResults property — this is not the real failure
  • The real validator exception is hidden behind this crash
  • Any validator module (not just ArcIntegration) can trigger this error

Root Cause

The RunValidators function collects results from each JIT validator. When a validator throws an unexpected exception, the code attempts to append exception results to the array of execution jobs using PowerShell member enumeration:

# Line 1583 (2602) — THE BUG
$executionJobs.AllResults += $exceptionResults

$executionJobs is an array of ExecutionJob objects. PowerShell member enumeration allows reading $array.Property but does not support writing $array.Property += value. This causes the PropertyAssignmentException which masks the real validator failure.

Important

This bug is triggered by any validator that throws an exception during PreUpdateJIT — it is not specific to any single validator such as ArcIntegration.

Resolution

Step 1: Find the real validator exception

The real exception is captured in the Environment Validator progress file before the AllResults crash occurs. On the node that ran the EnvironmentValidatorPreUpdateJIT step, (find with Get-ClusterGroup '*Orchestrator*' | Select OwnerNode) open the progress file:

# On the node where PreUpdateJIT ran
$progressPath = "$env:SystemDrive\CloudDeployment\MASLogs\AzStackHciEnvironmentProgress.json"
if (-not (Test-Path $progressPath))
{
    # Alternative location
    $progressPath = "C:\MASLogs\AzStackHciEnvironmentProgress.json"
}

# Find the validator(s) that actually failed
$progress = Get-Content $progressPath | ConvertFrom-Json
$progress | Where-Object { $_.Status -eq 'Error' } | Format-List Name, Command, Status, ExecutionDetail

Example output showing the real failure:

Name            : Arc Integration
Command         : Test-AzStackHciArcIntegration
Status          : Error
ExecutionDetail : Exception occurred (Test-AzStackHciArcIntegration): The provided account MSI@50342 
                  does not have access to subscription ID "b435cdaa-..."

The ExecutionDetail field contains the actual exception message from the validator that failed.

Step 2: Remediate the underlying validator failure

Use the ExecutionDetail from Step 1 to identify and resolve the real issue. Common examples:

Validator that threwTypical causes
Test-AzStackHciArcIntegrationMSI permission issues, Az.Accounts version mismatch
Test-AzStackHciNetworkNetwork adapter or switch configuration issues
Test-AzStackHciDNSDNS resolution failures
Test-AzStackHciHardwareWMI/CIM query timeouts, missing drivers
Test-AzStackHciConnectivityEndpoint unreachable, proxy misconfiguration

Refer to the specific validator's TSG based on the validator name shown in the Command field.

Step 3: Verify the fix and re-run readiness checks

After resolving the underlying validator issue, re-run the readiness checks using one of the following methods:

Re-run system health checks (recommended first step):

# Trigger a fresh system health check
Invoke-SolutionUpdatePrecheck -SystemHealth

# Wait a few minutes, then verify the health state
Get-SolutionUpdateEnvironment | Format-List HealthState, HealthCheckDate

Confirm that HealthState is Success or InProgress (not Failure).

Step 4: Verify the validator now passes

After the readiness checks complete, confirm the previously failing validator is no longer in error:

# Check the update readiness results
$result = Get-SolutionUpdateEnvironment
$result.HealthCheckResult | Where-Object { $_.Status -ne "SUCCESS" } | Format-List Title, Status, Severity, Description, Remediation

# Verify no Environment Validator Exception results remain
$result.HealthCheckResult | Where-Object { $_.Title -eq "Environment Validator Exception" } | Format-List *

If the results are clean, the update can proceed.