Cómo evitar $ compile: errores de tpload en la respuesta del código de estado 401

Estamos desarrollando una aplicación de una sola página con AngularJS y ASP.NET MVC Json Rest API.

Cuando un cliente no autenticado intenta navegar a una ruta privada (Ej:/ Foo / Inicio / Plantilla) para obtener una plantilla, obtiene una respuesta 401 de la API web y nuestra aplicación AngularJS la redirige automáticamente a la página de inicio de sesión.

Estamos manejando el 401 con$ http interceptor con algo como esto:

if (response.status === 401) { 
        $location.path(routeToLogin);
        return $q.reject(response);
}

Ingresar las credenciales correctas le permite al cliente obtener la plantilla.

Todo funciona perfectamente, excepto un detalle; la consola Javascript informa este error:

Error: [$compile:tpload] http://errors.angularjs.org/1.3.0/$compile/tpload?p0=%Foo%2FHome%2FTemplate%2F

Documentación de AngularJs declara esto:

Descripción

Este error se produce cuando $ compile intenta recuperar una plantilla de alguna URL y la solicitud falla.

En nuestra aplicación AngularJs, la solicitud falla pero es por diseño porque el recurso está allí pero no se puede acceder (401).

¿Debo seguir adelante y aceptar este tipo de error en la consola o es posible silenciarlo o protegerlo de alguna manera?

EDITAR:

He depurado un poco la fuente angular y descubrí qué parte del código está generando la excepción.
Ya que estamos usandoTemplateUrl para declarar nuestras plantillas, indirectamente estamos usando la funcióncompileTemplateUrl eso hace esta llamada:

$templateRequest($sce.getTrustedResourceUrl(templateUrl))

esto deja el segundo parámetro (ignoreRequestError) detemplateRequest indefinido

ignoreRequestError (opcional) booleano

Si se debe ignorar o no la excepción cuando la solicitud falla o la plantilla está vacía

Cuando nuestro interceptor http, que maneja el código de estado 401, rechaza la promesa, el $ http.get dentro del$TemplateRequestProvider falla y llama a esta función:

 function handleError() {
        self.totalPendingRequests--;
        if (!ignoreRequestError) {
          throw $compileMinErr('tpload', 'Failed to load template: {0}', tpl);
        }
        return $q.reject();
      }

Creo que no podemos hacer nada para evitar el error en la consola comoTemplateUrl no permite configurar elignoreRequestError bandera a falso

He tratado de evitar el rechazo en caso de código de estado 401; esto corrige el error en la consola, pero lamentablemente tiene un efecto secundario: una plantilla vacía está mal almacenada en cachéTemplateCache causando otros problemas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta