Private/New-InfraPulseExecutionFailureReport.ps1

function New-InfraPulseExecutionFailureReport {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string]$RequestedComputerName,

        [Parameter(Mandatory)]
        [string]$ComputerName,

        [Parameter(Mandatory)]
        [string]$ErrorMessage,

        [double]$DurationMs,

        [string[]]$Tags = @(),

        [string]$RunId = '',

        [string]$ConfigurationFingerprint = '',

        [string]$ConfigurationSource = ''
    )

    $result = New-InfraPulseResult -Status 'Unknown' -CheckName 'Execution' -Category 'Control' -ComputerName $ComputerName -Target $ComputerName -Message "The health scan for '$ComputerName' ended before a complete report was produced." -ObservedValue $false -CriticalThreshold 'Scan must complete' -Recommendation 'Review the captured error, target prerequisites, account permissions, and the selected checks. Re-run with -Verbose after correcting the underlying condition.' -Evidence ([ordered]@{ RequestedComputerName = $RequestedComputerName; ComputerName = $ComputerName; Error = $ErrorMessage }) -DurationMs $DurationMs -ErrorMessage $ErrorMessage
    return New-InfraPulseReport -RequestedComputerName $RequestedComputerName -ComputerName $ComputerName -Inventory $null -Results @($result) -DurationMs $DurationMs -Tags $Tags -RunId $RunId -ConfigurationFingerprint $ConfigurationFingerprint -ConfigurationSource $ConfigurationSource
}