I've created global error handler in my Angular 6 application:
main error handler method:
handleError(error: Error | HttpErrorResponse) {
    const router = this.injector.get(Router);
    const notificationService = this.injector.get(NotificationsService);
    this._logger(error);
    if (!navigator.onLine) {
        notificationService.displayNotification('error', 'timespan', {heading: 'Internet connection lost!', body: ''});
    } else if (error instanceof HttpErrorResponse) {
        notificationService.displayNotification('error', 'click', this._httpErrorMessage(error));
    } else {
        // CLIENT error
        router.navigate(['/error-page']);
    }
}
Problem: Many of HTTP service calls are being performed in resolvers:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<ClientDetailsModel> {
if (route.params.cif) {
  const reqBody = new GetClientDetailsRequestModel({cif: route.params.cif, idWewPrac: this.userContext.getUserSKP()});
  return this.clientsService.getClientDetails(reqBody)
    .pipe(
        map((clientDetails: { customerDetails: ClientDetailsModel }) => {
            if (clientDetails.customerDetails) {
                return clientDetails.customerDetails;
            }
            return null;
        })
    );
}
If Http error occurs in such a call, error received by my global error handler is formed as HttpErrorResponse wrapped inside Error (message of Error is HttpErrorResponse):
Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":{},"lazyUpdate":null},"status":400,"statusText":"OK","url":"https://...
If Http errors occurs outside of resolvers global error handler works perfectly fine.
To reach my goal (throwing HttpErrorResponse from resolver) I need to specify the way to handle error in error callback inside subscription, but I cannot do it because resolver is the one who manages subscription.
Is there a way to specify how resolver should handle errors?
I would like to avoid manual parsing of these wrapped errors.
 
    