Private/Get-RestError.ps1
function Get-RestError { <# .SYNOPSIS Internal function that is triggered in a "Catch" frion a Try/Catch routine, it displays the HTTP and REST error seperately. Error handing changed in PS core, so this is proccessed seperately. #> [CmdletBinding()] Param () #PowerShell 5.x if ($PSVersionTable.PSVersion.Major -lt '6'){ Write-Output "HTTP Error: $_.Exception.Message" if ($_.Exception.Response){ $result = $_.Exception.Response.GetResponseStream() $reader = New-Object System.IO.StreamReader($result) $responseBody = $reader.ReadToEnd(); $RestApiErroDescription = ($responseBody | ConvertFrom-Json).errors Write-Output "REST Error: $RestApiErroDescription" } } Else { #PowerShell 6+ $ResponseCode = $_.Exception.Response.StatusCode.value__ $ResponseReasonPhrase = $_.Exception.Response.ReasonPhrase Write-Output "HTTP Response: $ResponseCode $ResponseReasonPhrase" if (Test-Json -Json ($_.ErrorDetails).Message -ErrorAction SilentlyContinue){ $RestApiErroDescription = (($_.ErrorDetails).Message | ConvertFrom-Json).errors } Else { $RestApiErroDescription = ($_.ErrorDetails).Message } Write-Output "REST Error: $RestApiErroDescription" } } |