In some cases you may need to use Invoke-WebRequest of powershell as a correct result with status code of 404. A use case for this scenario would be a smoke test for a particular service or URL. In newer powershell versions you can use SkipHttpErrorCheck in order to stop powershell from failing the script.
The below example is a simple Web request that will fail on Powershell <7 with an exception if a 404 response is returned from the webpage.
$req = Invoke-WebRequest -Uri $url -Method GET
The parameter that you could use with Powershell 7++ and you would not have the powershell task failed would be.
$req = Invoke-WebRequest -Uri $url -Method GET -SkipHttpErrorCheck
In order to bypass this issue you could handle the exception on Powershell <7 and add your logic inside the catch block. For example
try {
$resultApi = MakeWebRequest("http://localhost:1234/api/console")
}
catch {
if( $_.Exception.Response.StatusCode.Value__ -eq 404 )
{
Write-Host "API console Test 404 , proceeding ..."
}
else {
Write-Host "False response..."
}
}

Thank you!