Allow non-http protocols to fail

ignoreHttpErrors would return true when called with a non-HTTP request
result. This would lead to all non-HTTP errors being ignored.

Instead, check that we have an http request before trying to decide if
we should ignore the errors.

Fixes #7599.